如何将标准控件属性固定在所需值

本文关键字:属性 标准 控件 | 更新日期: 2023-09-27 18:10:36

我想让TabControl.TabStop属性始终设置为false。我把它设置为只读,但设计器似乎自动将其添加到初始化中,导致错误

属性'TabStop'为ReadOnly

在继承控制中,我如何在没有这些问题的情况下固定恒定值的属性值?我应该使用空setter而不是使属性只读吗?

What I have:

public class SpecialTabControl : TabControl
{
    public bool TabStop {
        get { return false; }
    }
    public SpecialTabControl() : base()
    {
        base.TabStop = false;
    }
}

(c#或VB,不管你喜欢。)

如何将标准控件属性固定在所需值

一定要注意代码产生的警告,这是您首先要修复的。是的,TabControl设计者完全希望这个属性有一个setter,当它没有setter时,它会吐子弹。所以你必须提供一个setter

您还需要防止该属性在Properties窗口中可见,并明确表示该值永远不能被序列化。这些加起来就是:

[Browsable(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new bool TabStop {
    get { return false; }
    set { base.TabStop = false; }
}

对TabIndex属性进行相同的处理