我必须创建一个“可搜索”的属性网格,即位于顶部的文本框,后跟属性网格。 而不是使用用户控件我会直接扩展属性网格,但我无法动态添加子文本框控件。 有人可以帮帮我吗? 非常感谢你!
答案 0 :(得分:1)
PropertyGrid
内部控制创建流程未记录。它由ToolStrip
,内部网格,描述窗格和操作窗格组成。
我尝试在现有集合中添加一个控件:它会导致整个控件布局出现问题,这似乎是由一些内部自定义计算完成的,而不是现有的着名的.NET布局机制。
它可能可以通过使用Reflection来强制执行,但我甚至没有尝试过,因为它一方面很难,另一方面它会影响PropertyGrid
的未来版本的升序兼容性。 / p>
我最终使用了UserControl
我放置了一个顶部停靠的TextBox
,并填充了PropertyGrid
,并添加了此属性:
public PropertyGrid InnerPropertyGrid
{
get
{
return this.propertyGrid1;
}
}
通过这种方式,我的所有PropertyGrid
属性,方法和事件都会公开,甚至在设计模式下。
这不是最聪明的方法,但它比试图破解这个控件的某些私有部分更快更容易。