.net 在设计时隐藏私有子控件属性
我有一个带有一些私有子控件的容器控件。如何在设计时隐藏属性浏览器,使其不显示控件。在设计时,它还会在每个控件上显示一个锁和一个方形图标 我试着去控制.net 在设计时隐藏私有子控件属性,.net,visual-studio,winforms,windows-forms-designer,.net,Visual Studio,Winforms,Windows Forms Designer,我有一个带有一些私有子控件的容器控件。如何在设计时隐藏属性浏览器,使其不显示控件。在设计时,它还会在每个控件上显示一个锁和一个方形图标 我试着去控制 <Browsable(False), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Bindable(False)> <EditorBrowsable(EditorBrowsableState.Never)> 还尝试为
<Browsable(False), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), Bindable(False)>
<EditorBrowsable(EditorBrowsableState.Never)>
还尝试为子控件设置
。但仍然显示在设计器中,即使它不可编辑
目前,我正在设计时绘制控件,并在运行时加载实际控件。有更简单的方法吗?选项1-设置GenerateMember=false 在基本控件的设计模式中,将子控件的属性设置为
false
。这样派生控件就不允许选择按钮
选项2-使用TypeDescriptor为子控件设置新的非工作设计器
另一个技巧是在初始化组件后,在基本控件的构造函数中使用typeDescriptor.AddAttributes
,为子控件设置一个新的非工作设计器:
TypeDescriptor.AddAttributes(this.button1, new DesignerAttribute(typeof(object)));
始终使用第一种解决方案,除非您发现无法应用第一种解决方案的场景。然后选择第二个解决方案。谢谢,第二个方案奏效了。当
GenerateMember=false
子控件变得无用,因为它们无法在控件的其他部分引用。酷,没问题:)如果您需要引用它们(而不仅仅是处理它们的事件),那么我同意,这是第二个选项的有效方案。