2016-11-20 254 views
0

在我的表單應用程序中有一個文本框和兩個按鈕,我需要啓動一個進程,並在文本框中每當它爲空時,我需要它下面的按鈕來禁用。我曾嘗試google'd幫助,即:文本框不檢查是否爲空

public void buttonenableordisable() 
{ 
    if(String.IsNullOrEmpty(textBox1.Text)) 
    { 
     button1.Enabled = false; 
    } 
    else 
    { 
     button1.Enabled = true; 
    } 
} 

,但它只是禁用按鈕,在添加文本到文本框,按鈕不啓用,它保持灰色。我也試過,

if (string.IsNullOrWhiteSpace(textbox1.Text)) 
{ 
    button1.Enabled = false; // <<== No double-quotes around false 
} 
else 
{ 
    // Don't forget to re-enable the button 
    button1.Enabled = true; 
} 

但是這也行不通。有任何想法嗎 ?

在此先感謝。

+0

如何調用'buttonenableordisable()'? –

+0

您從哪個事件處理程序調用此代碼? – Steve

+0

@DanWilson在窗體()中調用它,其中:public Form2() { InitializeComponent(); buttonenableordisable(); } – Commongrate

回答

1

您應該綁定到文本框的TextChanged事件並調用您的方法。它也可以被簡化。

就這樣,您只在表單加載時調用一次方法。

public void buttonenableordisable() 
{ 
    button1.Enabled = !String.IsNullOrEmpty(textBox1.Text); 
} 

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    buttonenableordisable(); 
} 
+0

如果我打電話給buttonenableordisable();方法在textchanged中,如果文本框爲空,則按鈕不會變灰。 – Commongrate

+0

沒關係,我把它稱爲它的形式,它的工作原理,謝謝。 – Commongrate