C# 在FolderBrowser对话框-wpf中禁用右键单击?
我用它来获取文件夹对话框,但现在我需要禁用该文件夹对话框中的右键单击,以便防止从那里删除文件夹。C# 在FolderBrowser对话框-wpf中禁用右键单击?,c#,wpf,wpf-controls,folderbrowserdialog,C#,Wpf,Wpf Controls,Folderbrowserdialog,我用它来获取文件夹对话框,但现在我需要禁用该文件夹对话框中的右键单击,以便防止从那里删除文件夹。enter code here 创建自定义文件夹对话框是我想采用的最后一个选项 那么,如果没有自定义folderDialog,有人能为这个问题提出任何可能的解决方案吗。无法继承该类,因此无法重写任何设置。没有可挂钩的事件 因此,您有两个选择: 滚你自己的 使用文件系统锁定用户环境 购买具有此功能的第三方控件 我们选择了选项2,因为最终用户不需要在我们的RDP服务器上使用“正常”的windows应用程序
enter code here
创建自定义文件夹对话框是我想采用的最后一个选项
那么,如果没有自定义folderDialog,有人能为这个问题提出任何可能的解决方案吗。无法继承该类,因此无法重写任何设置。没有可挂钩的事件 因此,您有两个选择:
谢谢你的回复。我将在:HKEY_CLASSES_ROOT下检查如何修改注册表项。如果你发现任何有用的链接,请共享它们。如果在还原原始注册表项之前计算机崩溃,会发生什么情况?@Calcolat:一个简单的尝试,catch block就可以做到这一点。在catch块内,可以恢复钥匙。@RavindraNadh:这方面有什么进展吗?@RavindraNadh:我会检查是否能找到任何东西并恢复。你知道有什么选项吗#3?
System.Windows.Forms.FolderBrowserDialog dlg = new FolderBrowserDialog();
HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
System.Windows.Forms.IWin32Window win = new OldWindow(source.Handle);
System.Windows.Forms.DialogResult result = dlg.ShowDialog(win);
System.Windows.Forms.FolderBrowserDialog fd = new System.Windows.Forms.FolderBrowserDialog();
//Get key for New menu option in Context menu.
RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"Directory\Background\shellex\ContextMenuHandlers\New",true);
//Set it to blank.
key.SetValue("", "");
fd.ShowDialog();
//Restore the value.
key.SetValue("", "{D969A300-E7FF-11d0-A93B-00A0C90F2719}");`