禁用 winforms 设计器中的属性设置

mró*_*ówa 3 c# designer visual-studio-2008 winforms

我在我的项目中使用了Yet Another TabControl - 它是自定义的开源 TabControl,支持设计器。在解决了一些问题之后,我偶然发现了一个我不知道如何解决的问题。

当我运行我的应用程序时,YATabControl 将选择我在设计器中选择的相同选项卡 - 这并不完全是我想要的(我宁愿从第一个选项卡开始),并且在应用程序运行时我无法在选项卡中移动,因为它尝试在每次更改选项卡时保存属性“SelectedIndex”。

它是在设计者〜onclick上设置的,使用:

RaiseComponentChanging( TypeDescriptor.GetProperties( Control )[ "SelectedIndex" ] );  
RaiseComponentChanged( TypeDescriptor.GetProperties( Control )[ "SelectedIndex" ], oi, i );(old index, index).
Run Code Online (Sandbox Code Playgroud)

我在想 - 有没有办法禁止设计者设置属性的运行时值?

Lar*_*ech 5

我查看了源代码(没有下载它),但看起来你必须告诉属性SelectedIndex不要序列化自身:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual int SelectedIndex {
  get {
    return yaSelectedIndex;
  }
  set {...}
}
Run Code Online (Sandbox Code Playgroud)