8

名前が私の質問に正義を与えることを願っています...だから、私は記憶ゲームを作り始めたばかりで、アイテムを表示するために使用している25個のチェックボックスボタンがあります。

各ボタンが同じイベント ハンドラーを使用している場合、EventArgs またはオブジェクトのいずれかから送信されたボタンを知る方法があるかどうか疑問に思っていました。

private void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        checkBox = Code which will determine what checkBox sent it.
        if (checkBox.Checked)
        { Box.ChangeState(checkBox, true); }
        else { Box.ChangeState(checkBox, false);}
    }
4

2 に答える 2

17

Nameチェックボックスを定義するときに各チェックボックスの属性を設定して((CheckBox)sender).Nameから、個々のチェックボックスを識別するために使用してみてください。

定義時間:

CheckBox chbx1 = new CheckBox();
chbx1.Name = "chbx1";
chbx1.CheckedChanged += checkBox_CheckedChanged;
CheckBox chbx2 = new CheckBox();
chbx2.Name = "chbx2";
chbx2.CheckedChanged += checkBox_CheckedChanged;
CheckBox chbx3 = new CheckBox();
chbx3.Name = "chbx2";
chbx3.CheckedChanged += checkBox_CheckedChanged;

private void checkBox_CheckedChanged(object sender, EventArgs e)
    {
        string chbxName = ((CheckBox)sender).Name;
        //Necessary code for identifying the CheckBox and following processes ...
        checkBox = Code which will determine what checkBox sent it.
        if (checkBox.Checked)
        { Box.ChangeState(checkBox, true); }
        else { Box.ChangeState(checkBox, false);}
    }
于 2013-11-30T05:37:42.607 に答える