2015-12-08 138 views
0

我能夠創建按鈕。我將使用約65個按鈕,你如何使用按鈕上的其他條件?有人可以給我看一個例子嗎?先謝謝你。如果其他條件單選按鈕

private void createButtons() 
    { 
     flowLayoutPanel1.Controls.Clear(); 
     for(int i = 0;i <10;i++) 
     { 
      RadioButton b = new RadioButton(); 
      b.Name = i.ToString(); 
      b.Text = "radiobutton" + i.ToString(); 
      b.AutoSize = true; 
      flowLayoutPanel1.Controls.Add(b); 

     } 
    } 
+1

「你如何使用按鈕上的其他條件」,你將不得不詳細說明。 –

+0

我是初學者。當我在表單上拖放一個按鈕時,每個按鈕都有自己的名字,例如radionbutton1 radiobutton2等等。當你動態地創建按鈕時,我不知道哪個按鈕是button1或button2。用上面的例子我可以說「如果radiobutton1.checked做到這一點」? etc. – Dominique1256

+1

如何將RadioButtons放在列表或數組中?所以你可以使用'if(allRadioButtons [1] .checked)做這個' –

回答

0

如何將RadioButtons放入列表或數組中?這樣你可以使用if (allRadioButtons[1].checked) {...}

下面是一個例子

private List<RadioButton> allRadioButtons = new List<RadioButton>(); 

    private void createButtons() 
    { 
     flowLayoutPanel1.Controls.Clear(); 
     for (int i = 0; i < 10; i++) 
     { 
      RadioButton b = new RadioButton(); 
      b.Name = i.ToString(); 
      b.Text = "radiobutton" + i.ToString(); 
      b.AutoSize = true; 
      flowLayoutPanel1.Controls.Add(b); 
      //add every button to the list 
      //the one with the Text radiobutton0 will be accessible as allRadioButtons[0] 
      //the one with the Text radiobutton1: allRadioButtons[1] 
      //etc 
      allRadioButtons.Add(b); 
     } 

    } 

    //you can use your list in any other method 
    private void myMethod() { 
     if (allRadioButtons[0].Checked) 
     { 
      //do something 
     } 
    } 
+0

非常感謝現在我明白了,到目前爲止,我已經使用了列表來調用類的屬性,字符串,int。現在,通過這個例子,我可以看到並理解邏輯,再次感謝 – Dominique1256

+0

@ Dominique1256 - 如果你喜歡Andrea的回答,你應該接受它,並考慮對其進行投票。 –

+0

爲什麼一切都如此艱難:)你如何投票,我如何將它標記爲解決方案?我點擊了投票標籤並沒有任何發生。對於像我這樣的新人來說,「如果你想投票並接受它,請點擊這裏」。 – Dominique1256

0

如果安德烈的回答並沒有爲你工作(因爲你沒有將其標記爲解決方案),另一種選擇是創建一個容器,如GroupBox ,然後將編程創建的RadioButton控件添加到此容器。然後你可以遍歷屬於GroupBox這樣的控件:

foreach (Control c in myGroupBox.Controls) 
{ 
    if ((RadioButton)c).Checked) 
     //Do something 
} 

這將遍歷在GroupBox所有控件,並將它們轉換爲RadioButton,並檢查他們選中與否。我用過類似的東西作爲不同應用中不少要求的基礎;製作一個遞歸方法非常簡單,該方法需要一個ControlCollection,將其循環並根據需要應用邏輯,具體取決於某些條件,如控件的類型或控件的Tag值。

然後儘可能在運行時添加RadioButton S到GroupBox你只是像做myGroupBox.Controls.Add(b)其中bRadioButton您已在for循環在你的示例代碼創建的。 More on runtime control creation here

+0

現在我在面板上動態地獲得了65個單選按鈕,單選按鈕並不完美。如果我正在使用ASP.net,我會知道如何用CSS做到這一點,我們如何在winform中做到這一點? – Dominique1256

+0

您可以在創建時設置他們的'Location'屬性。找出一個'RadioButton'的高度,然後爲填充添加幾個像素,以便它們均勻分佈。 – sab669

+0

我是winform的初學者,所以如果我沒有看到一個例子,我很難實施你的建議。早些時候有人告訴過不要在設計器上使用65個單選按鈕,但它工作得很好,所有的單選按鈕都完美地排列起來。如果通過這種方式使用設計師存在缺陷?謝謝。 – Dominique1256

相關問題