達成しようとしていることを検索/フレーズ化する方法を理解するのに苦労しました。次の例を実現するためのより安全でスマートな方法があるかどうかを調べています。
名前の付いた 3 つのボタンがあるとします:
btnOne
btnTwo
btnThree
各ボタンの目的は、クリックされたときに特定のテキスト ボックスに一意の文字列を書き込むことです。3 つのボタンはすべて非常によく似たアクションを実行するため、3 つすべてに使用する 1 つのイベント ハンドラーを作成するのは理にかなっていますが、適切なテキスト ボックスが正しい文字列を取得できるように、3 つのボタンを区別するスマートな方法は何でしょうか? 私はそれについて行っている現在の方法が好きではありません:
疑似、疑似コード:
private void Clicked(object sender, EventArgs e)
{
string buttonName = (sender as Button).Name;
switch(buttonName)
{
case "btnOne":
tbOne.Text = "This text is from button one";
break;
case "btnTwo":
tbTwo.Text = "This is some different text";
break;
case "btnThree":
tbThree.Text = "Button three text";
break;
}
}
もう 1 つの方法は、次のような一般的なメソッドを持つ各ボタンのクリック時イベント ハンドラーを用意することです。
private void AfterButtonClicked(Textbox tb, string text)
{
tb.Text = text;
}