.net 如何让WinForm Designer完全忽略自定义控件上的属性?

.net 如何让WinForm Designer完全忽略自定义控件上的属性?,.net,winforms,properties,attributes,.net,Winforms,Properties,Attributes,这一定是常见问题,但我找不到重复的问题 有很多不同的属性控制WinForm Designer对自定义控件上的属性所做的操作,在这种情况下,我永远不清楚应该使用哪个属性 我正在寻找: 设计器未在网格中显示属性 设计器不读取属性的值 设计器未将属性设置为默认值 例如,Designer的行为就像属性不存在一样 如果设计器在添加属性之前已经执行了上述操作之一(很难!) 背景 给我带来问题的代码是: this.eventListControl.FilterSets = ((SystList&

这一定是常见问题,但我找不到重复的问题

有很多不同的属性控制WinForm Designer对自定义控件上的属性所做的操作,在这种情况下,我永远不清楚应该使用哪个属性

我正在寻找:

  • 设计器未在网格中显示属性
  • 设计器不读取属性的值
  • 设计器未将属性设置为默认值
  • 例如,Designer的行为就像属性不存在一样
  • 如果设计器在添加属性之前已经执行了上述操作之一(很难!)

背景

给我带来问题的代码是:

this.eventListControl.FilterSets = 
   ((SystList<FilterSet>)(resources.GetObject("eventListControl.FilterSets")));
this.eventListControl.FilterSets=
((SystList)(resources.GetObject(“eventListControl.FilterSets”));

winforms设计器不应触及FilterSets属性;它现在是不可序列化的,并且每当使用eventListControl的表单发生更改时,MsDev就会崩溃

我认为您可以使用
[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]


第二个属性阻止属性出现在
InitializeComponent

谢谢,这阻止了设计人员将其添加到新表单的InitializeComponents中,但是设计师仍然无法读取allready具有控件的表单的资源文件,因此我必须手动编辑资源文件。此外,ILMerge不能正确地重写它,所以如果
FilterSets
在被合并的DLL中,这行代码将抛出。