我能够创建按钮。我将使用大约65个按钮,你如何在按钮上使用if else条件?有人可以给我看一个例子吗?提前谢谢。
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);
}
}
答案 0 :(得分: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
}
}
答案 1 :(得分:0)
如果Andrea的回答对您不起作用(因为您没有将其标记为解决方案),另一种选择是创建容器,例如GroupBox
,然后添加以编程方式创建的{ {1}}控制此容器。然后你可以像这样循环遍历属于RadioButton
的控件:
GroupBox
这会循环遍历foreach (Control c in myGroupBox.Controls)
{
if ((RadioButton)c).Checked)
//Do something
}
中的所有控件并将它们转换为GroupBox
并检查它们是否已被选中。我已经使用类似的东西作为不同应用中相当多的要求的基础;根据某些条件(如控件的类型或控件的RadioButton
值),可以很容易地创建一个递归方法,该方法接受ControlCollection
,循环并根据需要应用逻辑。
然后,只要在运行时将Tag
添加到RadioButton
,您就可以执行类似GroupBox
myGroupBox.Controls.Add(b)
b
你'的操作已在示例代码的RadioButton
循环中创建。 More on runtime control creation here