【问题标题】:Windows Explorer Context Menu QuestionWindows 资源管理器上下文菜单问题
【发布时间】:2010-08-10 20:45:09
【问题描述】:

我有一个 TreeView,它代表 Windows 文件系统中的一些文件/文件夹。我希望能够右键单击一个并显示标准的 Windows 上下文菜单。节点的标签包含文件路径。 我花了相当多的时间研究,我发现了这个:http://www.codeproject.com/KB/cs/shellContextMenu.aspx

但是,它似乎缺少“重命名”项。所以我想把它拿回来..

我也想知道如何处理函数。例如,如果用户重命名或删除文件,我想相应地删除该节点/重命名该节点。

我正在使用 C#、.NET 4 进行编程。

【问题讨论】:

    标签: c#


    【解决方案1】:

    您需要在 IContextMenu.QueryContextMenu 的 uFlags 参数中包含 CMF_CANRENAME 标志,以表明您的主机应用程序支持重命名项目。

    【讨论】:

    • 如何将它与我的树视图集成以调用编辑模式?树上有一个 IsEditable 属性,所以我希望能够正确支持它。
    • 在 TrackPopupMenu 返回选定的命令 id 后,您将使用 GCS_VERB 将其传递给 IContextMenu.GetCommandString。如果返回的动词是“重命名”,您将使用 TreeView 控件 (TreeNode.BeginEdit) 的内置编辑功能。最后,通过调用 IShellFolder.SetNameOf 应用名称更改。在添加重命名菜单项之前,您可能还想检查 IShellFolder.GetAttributesOf 是否返回 SFGAO_CANRENAME。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2020-12-26
    • 2010-12-22
    • 1970-01-01
    相关资源
    最近更新 更多