我有一个使用.NET PropertyGrid控件的Windows应用程序。是否可以更改用于属性的值字段的控件类型?
我希望能够使用RichTextBox来更好地格式化输入值。 这可以在不创建自定义编辑器类的情况下完成吗?
答案 0 :(得分:4)
要在用户选择属性网格值时添加自己的自定义编辑,您需要实现一个派生自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; }
}
答案 1 :(得分:1)
您可以控制PropertyGrid是显示简单的编辑框,下拉箭头还是省略号控件。
查找EditorAttribute,然后从那里开始。我确实在某个地方有样本;我会试着把它挖出来。
答案 2 :(得分:0)
我认为你要找的是自定义类型描述符。 您可以阅读一下并开始使用:http://www.codeproject.com/KB/miscctrl/bending_property.aspx
我不确定你能做任何你想要的控制,但那篇文章让我开始讨论属性。