我有一个使用.NET PropertyGrid控件的Windows应用程序。是否可以更改用于属性值字段的控件类型?如何更改在.NET PropertyGrid中使用的控件的类型
我希望能够使用RichTextBox来更好地设置输入值的格式。 这可以在不创建自定义编辑器类的情况下完成吗?
我有一个使用.NET PropertyGrid控件的Windows应用程序。是否可以更改用于属性值字段的控件类型?如何更改在.NET PropertyGrid中使用的控件的类型
我希望能够使用RichTextBox来更好地设置输入值的格式。 这可以在不创建自定义编辑器类的情况下完成吗?
要在用户选择属性网格值时添加自己的自定义编辑,您需要实现从UITypeEditor派生的类。然后,您可以选择在属性区域下方显示一个小的弹出窗口或完整的对话框。
好的是你可以重用现有的实现。因此,要增加多编辑字符串你只是这样做的能力...
[Editor(typeof(MultilineStringEditor), typeof(UITypeEditor))]
public override string Text
{
get { return _string; }
set { _string = value; }
}
他们为您提供的另一个不错的一个是编辑字符串数组的能力...
[Editor("System.Windows.Forms.Design.StringArrayEditor,
System.Design, Version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a",
typeof(UITypeEditor))]
public string[] Lines
{
get { return _lines; }
set { _lines = value; }
}
我觉得你要找的是自定义类型描述符。 你可以读一点,并开始在这里:http://www.codeproject.com/KB/miscctrl/bending_property.aspx
我不知道你可以做任何你想要的控制,但那篇文章让我开始在propertygrids上。
您可以控制PropertyGrid是显示简单编辑框,下拉箭头还是省略号控件。
查找EditorAttribute,并从那里按照它。我确实有一个样本;我会尽力挖掘出来。
谢谢。那太完美了! 除了typeof(UITypeEditor)之外,你可以使用“System.Drawing.Design.UITypeEditor,System.Drawing,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a” 发现一些编译错误 – 2008-09-17 17:56:15