Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在设计时隐藏私有子控件属性_.net_Visual Studio_Winforms_Windows Forms Designer - Fatal编程技术网

.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
子控件变得无用,因为它们无法在控件的其他部分引用。酷,没问题:)如果您需要引用它们(而不仅仅是处理它们的事件),那么我同意,这是第二个选项的有效方案。