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

zysjyyx4  于 2022-11-30  发布在  其他
关注(0)|答案(3)|浏览(145)

我在我的项目中使用Yet Another TabControl--它是一个定制的、开源的TabControl,支持设计器。在解决了它的一些问题之后,我偶然发现了一个我不知道如何解决的问题。
当我运行我的应用程序时,YATabControl会选择我在设计器中选择的同一个选项卡-这并不是我想要的(我宁愿从第一个选项卡开始),并且我不能在应用程序运行时在选项卡之间移动,因为它试图在每次更改选项卡时保存属性“SelectedIndex”。
它是在设计工具~onclick上设定,使用:

RaiseComponentChanging( TypeDescriptor.GetProperties( Control )[ "SelectedIndex" ] );  
RaiseComponentChanged( TypeDescriptor.GetProperties( Control )[ "SelectedIndex" ], oi, i );(old index, index).

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

ar7v8xwq

ar7v8xwq1#

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

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public virtual int SelectedIndex {
  get {
    return yaSelectedIndex;
  }
  set {...}
}
ldfqzlk8

ldfqzlk82#

[Browseable(false)]是要走的路:)

mec1mxoz

mec1mxoz3#

您需要这两个属性,因此如下所示:

[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool MyExtraProperty { get; set; }

相关问题