c#:如何扩展propertygrid以在顶部显示文本框

时间:2013-11-20 16:14:56

标签: c# winforms propertygrid

我必须创建一个“可搜索”的属性网格,即位于顶部的文本框,后跟属性网格。 而不是使用用户控件我会直接扩展属性网格,但我无法动态添加子文本框控件。 有人可以帮帮我吗? 非常感谢你!

1 个答案:

答案 0 :(得分:1)

PropertyGrid内部控制创建流程未记录。它由ToolStrip,内部网格,描述窗格和操作窗格组成。

我尝试在现有集合中添加一个控件:它会导致整个控件布局出现问题,这似乎是由一些内部自定义计算完成的,而不是现有的着名的.NET布局机制。

它可能可以通过使用Reflection来强制执行,但我甚至没有尝试过,因为它一方面很难,另一方面它会影响PropertyGrid的未来版本的升序兼容性。 / p>

我最终使用了UserControl我放置了一个顶部停靠的TextBox,并填充了PropertyGrid,并添加了此属性:

public PropertyGrid InnerPropertyGrid
{
    get
    {
        return this.propertyGrid1;
    }
}

通过这种方式,我的所有PropertyGrid属性,方法和事件都会公开,甚至在设计模式下

这不是最聪明的方法,但它比试图破解这个控件的某些私有部分更快更容易。