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

How to fix standard control property at desired value?

我希望 TabControl.TabStop 属性 始终设置为 false。我已将其设置为只读,但设计器似乎将其自动添加到初始化中导致错误的原因

Property 'TabStop' is ReadOnly

在继承控制中,如何将 属性 值固定为常数值而不出现这些问题? 我应该只使用空 setter 而不是制作属性只读?

我有:

public class SpecialTabControl : TabControl
{
    public bool TabStop {
        get { return false; }
    }

    public SpecialTabControl() : base()
    {
        base.TabStop = false;
    }
}

(C# 或 VB,随你喜欢。)

请注意您的代码产生的警告,这是您必须修复的第一件事。是的,TabControl 设计者完全希望 属性 有一个 setter,如果没有,就会吐子弹。所以你必须提供一个 setter.

您还需要防止 属性 在属性 window 中可见,并明确表示绝不能序列化该值。所有加起来:

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

对 TabIndex 属性 进行同样的处理。