C# Winform のパネルに多数のテキスト ボックスがあります。テキスト ボックスの各行には、次のような名前が付けられます。
tb1 tbNickName1 コンボボックス1 tb2 tbニックネーム 2 コンボボックス
2 tb3 tbニックネーム 3 コンボボックス 3
等々。
テキスト ボックスの各行の横にボタンがあります。しかし、ボタンがボタンごとに異なるイベントを指すようにするのではなく、ボタンを button1_Click イベントだけを指すようにし、そこですべての処理を行うようにしたいと考えています。私はこれを行う方法を知っており、すべてのボタンが button1_Click イベントを指しています。
しかし、どのボタンから呼び出されたのかを判断できる必要があります (これは可能です)。ただし、イベント内のテキスト ボックスの名前を操作して、現在の行に基づいて処理を実行できるようにする必要があります。 /ボタンから呼び出しています。
たとえば、tb2 tbNickName2 コンボ ボックス 2 テキスト ボックスがある行番号 2 にいる場合、button1_Click イベントにこれを認識させ、tb2 tbNickName2 コンボ ボックス 2 の値を以下の例で使用する tmp 変数に自動的に割り当てる必要があります。 .
private void button1_Click(object sender, EventArgs e)
{
Button bt = (Button) sender; //will return 'button1'
string tmpEmail = null;
string tmpNickName = null;
string tmpGroup = null;
//I don't want to hard code the tb1.Text value here, I want to have
// the namechange based on which (Button) sender it was called from.
// For example button1 should assign all the
// tb1 tbNickName1 comboBox1 values
//If called from button2, then it should assign the
//tb2 tbNickName2 comboBox2 values instead
//How can I do this so tb1.Text is based off of the button # that I am
//calling for example tb(bt).Text would be cool but that does not work.
tmpEmail = tb1.Text; //What do I change tb1.Text to based on button #?
tmpNickName = tbNickName1.Text; //What do I change tbNickName1.Text to?
tmpGroup = comboBox1.Text;//What do I change comboBox1.Text to?
}
これをうまく説明できていないことは承知していますが、私にできる最善のことです。