private button_Click(object sender, EventArgs e)
{
Button button = (Button)(sender);
switch(button.Name)
{
case "button1":
textBox1.Text = "Test1";
break;
case "button2":
textBox2.Text = "Test2";
break;
case "button3":
textBox3.Text = "Test3";
break;
case "button4":
textBox4.Text = "Test4";
break;
}
}
で、私が個人的に気に入らないのが、switch~caseでの分岐条件がsender(イベントを発生させたボタンのはず)のNameプロパティ・・・。そうなんです、これをやってしまうと、Buttonの名前を変更した際に、この条件部分も書き換えが必要になってしまいます。
ちなみに、私は下記のように修正しました。
private button_Click(object sender, EventArgs e)
{
Button[] button = { button1, button2, button3, button4 };
TextBox[] textBox = { textBox1, textBox2, textBox3, textBox4 };
for (int i = 0; i < button.Length; ++i)
{
if (((Button)sender) == button[i])
{
textBox[i].Text = string.Format("Test{0}", i + 1);
}
}
}
まぁ、この辺りは好みの問題もあるかもしれませんけが、私は前者の書き方はどうしても好きになれません。