我正在学习C#,并且我已经完成了使用Windows Forms创建计算器的练习。现在我只为数字和按钮添加了9个按钮(+, - ,*,/)和一个标签以数字形式写入字符串。目前我正在这样做:WinForms按钮阵列
private void button1_Click(object sender, EventArgs e)
{
WriteInLabel(1);
}
private void button2_Click(object sender, EventArgs e)
{
WriteInLabel(2);
}
//etc.
//function to write the Text in label1
private void WriteInLabel(int i)
{
label1.Text += i.ToString();
}
并记住DRY原则,这看起来像一种不好的书面代码给我。 有没有更好的写法?我想到了像按钮数组/列表。所以我可以做这样的事情:
for(int i = 0; i < btnArr.Length; i++)
{
//Is this the correct syntax for appending an eventListener?
btnArr[i]Click += (sender, args) => WriteInLabel(i);
}
现在的问题是,我想编辑Windows窗体设计器视图中的按钮属性。 我可以通过这样的自写代码获得按钮的设计视图吗?
Button btn1 = new Button();
或者是否有可能从Form1中自动创建按钮的数组? 我想这(没有工作):
List<Button> btnList = new List<Button>();
foreach(Button btn in Form1)
{
btnList.Add(btn);
}
以什么方式没有工作?它将取决于一些按钮是如何制作的,如果他们被添加为儿童的形式等? – BugFinder
嗯,我只是通过将一个Button-Form从工具箱拖到Form1来添加它们。我在我的最后一段代码片段中得到Form1下的红色波浪线,并说:Form1是一种类型,在当前上下文中无效。 –