2012-07-25 43 views
-1

我有9個禁用的按鈕。有沒有什麼方法,讓他們一次,而不是做這樣的事情:啓用多個按鈕

button1.Enabled=True 
button2.Enabled=True 
... 
+4

所以。它是C#還是VB.NET? =) – 2012-07-25 15:30:04

+0

從這個例子中,我會用後者 – ThePower 2012-07-25 15:30:35

+0

我會說前者,因爲C#中的套接字是'true',VB中是'True'。 – 2012-07-25 15:40:11

回答

2

也許這將工作:

foreach(Button b in Controls){ 
    b.Enabled = true; 
} 

在這裏你選擇所有的按鈕,代表b然後您啓用了所有的人

希望它可以幫助

+0

我怎樣才能在VB中寫這個? – kushalvm 2012-07-25 16:12:05

+1

@kushal'For Each b As Button In Controls' then then your code,then'Next',就像在For循環中一樣。 – 2012-07-25 16:15:58

+0

當您遇到不是按鈕的控件時,這可能會引發錯誤。我過去所做的是在Controls集合上使用linq來提取所有按鈕的控件。一旦你有了這個集合,你就可以通過它們全部滾動來啓用/禁用它們。 linq看起來像這樣:'Dim tempCol = From r In Controls Where r.GetType()= GetType(Windows.Forms.Button)選擇r'。然後用循環中的tempCol替換Controls。 – 2012-07-25 20:40:56

0
button1.enabled = button2.enabled = ... = true 
1

假設您已經劃分得很好......

foreach(var button in parent.Controls.OfType<Button>()) 
    button.Enabled = true; 
0
private void EnableButtons(bool enabled) 
{ 
    var myButtons = new Button[] { button1, button2, button3 }; 

    foreach (var x in myButtons) 
    { 
     x.Enabled = enabled; 
    } 
} 

這允許您添加和刪除按鈕,並從您的按鈕配置,你認爲合適。 nachogsiri的解決方案非常棒,如果您想要啓用/禁用表單上的每個按鈕,如果只有某些相關的按鈕,這會給您更多的控制權。

0

的LINQ做它相當漂亮:

Controls.OfType<Button>().ToList().ForEach(c => c.Enabled = true); 
+0

匿名功能非常強大,但OP聽起來很新,所以如果沒有更多的解釋,這可能是沒有意義的。 – 2012-07-25 20:46:34