为什么Windows窗体TextBox中的AutoSize属性不出现在IntelliSense中

时间:2011-04-17 02:43:00

标签: winforms visual-studio textbox intellisense

根据规格(http://msdn.microsoft.com/en-us/library/k63c05yf.aspx

Windows窗体中的文本框应具有autosize属性。

当您输入TextBox1.AutoSize = true时,它实际上不会中断。但是,它似乎没有出现在IntelliSense属性列表中。

为什么会这样?

我尝试过重新编译并且全部编译,但textbox.autosize属性永远不会出现。

2 个答案:

答案 0 :(得分:10)

TextBox的AutoSize属性始终为true,由构造函数强制执行。该属性隐藏在父类(TextBoxBase)中,以避免意外将其设置为false。它有[Browsable(false)]隐藏它在属性网格中,[EditorBrowsable(EditorBrowsableState.Never)]将它隐藏在IntelliSense弹出窗口中。但是你可以改变它:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
        textBox1.AutoSize = false;
        textBox1.Height += 10;
    }
}

是的,看起来不太好。现在你知道为什么它被隐藏了。

答案 1 :(得分:1)

使用以下属性声明Control.AutoSize属性(及其在TextBoxBase中的覆盖):

[EditorBrowsable(EditorBrowsableState.Never)]

IntelliSense使用此属性决定不在完成列表中显示该属性。

(我对Windows Forms的了解不足以说明为什么这个属性被标记为不可浏览。)