2013-03-23 48 views
0

在Visual Studio 2010中,我希望如果文本框中没有任何内容,按钮将被禁用。 它启动为禁用,当我在文本框中输入内容时变为启用状态。 但是,当我从文本框中删除所有内容时,它仍然处于启用状态。 这就是我所做的:VS 2010:如何在从文本框中删除后禁用按钮?

public Form1() 
    { 
     InitializeComponent(); 
     button1.Enabled = false; 
    }  

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     if (textBox1.Text == null) 
     { 
      button1.Enabled = false; 
     } 
     else 
     { 
      button1.Enabled = true; 
     } 
    } 

有什么建议吗?

谢谢!

回答

5

线

if (textBox1.Text == null) 

应该是

if (textBox1.Text == string.Empty) 

Text属性将不为空(这通常被认为是指不存在任何值),而是的String.Empty,这代表一串零长度。

写这个较短的方法是:

button1.Enabled = (textBox1.Text != string.Empty); 
+0

埃里克,漂亮的呼叫。我意识到你已经拥有了同样较短的实现。 – 2013-03-23 19:59:05

+0

或button1.Enabled =!string.IsNullOrEmpty(textBox1.Text) – Phil 2013-03-23 21:24:22

+0

@Phil:不是说它可能对于WinForms应用程序来说至关重要,但是string.IsNullOrEmpty会对null进行额外的不必要的检查:-) – 2013-03-24 04:19:27

相关问题