【发布时间】:2019-05-28 12:42:06
【问题描述】:
在 Windows 窗体中,我在 PropertyGid 控件中表示一个自定义类,它具有各种字符串属性,如下图所示:
问题是我对当前更改字符串属性值的行为并不完全满意。对于那些需要文件或目录路径的属性,例如“目标”或“工作目录”属性,我想知道实现一个 TypeConverter / Type Descriptor 是否可行且可行,它会在单击时打开 OpenFileDialog在属性网格中字段右侧的向下箭头中。即通过OpenFileDialog选择文件或文件夹,而不是直接在属性网格中写入路径,但如果我想这样做仍然让选项直接写入路径。
也许 .NET Framework 类库已经提供了我请求的 TypeConverter / TypeDescriptor?。如果没有,这可能吗?以及如何开始这样做?
或者任何其他能够打开OpenFileDialog 以更改PropertyGrid 控件中特定属性的值的想法?
【问题讨论】:
-
框架对 IShellLink 一无所知。创建模态 UITypeEditor 以自定义值编辑。
-
@Hans Passant 感谢您的评论。我将从以下代码示例开始练习:docs.microsoft.com/en-us/dotnet/api/system.drawing.design.uitypeeditor?view=netframework-4.8,但我会指出这些属性是字符串数据-类型。
-
显然有一个类名为 FileNameEditor 的内置 UITypeEditor 可以做我需要的,或者至少这是这里建议的:stackoverflow.com/a/2373374/1248295。我还没试过。
-
该编辑器打开标准文件选择器对话框(打开文件)并让您选择文件路径/名称。
标签: c# .net vb.net winforms propertygrid