我正在學習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是一種類型,在當前上下文中無效。 –