2

私のフォームのさまざまな場所にプログラムで配置された一連のパネルコントロールがあります。以下では、ループして増加するとI、すべてのパネルが同じイベントハンドラーに登録されていることがわかります。これは私にとっては問題ありませんが、イベントハンドラーコードで、どのパネルがイベントを発生させたかを知る方法を見つけることができません。使ってみsenderましたが、使い方がわからないようです。だから私の質問は、イベントハンドラーコードで、どのパネルがイベントを発生させたかをどのように知ることができるかです

     Panels[i].Click += new EventHandler(AllPanels_Click);

  void AllPanels_Click(object sender, EventArgs e)
        {
           //need logic code here!
        }
4

2 に答える 2

4

最初にキャストsenderするPanel:

void Form1_Click(object sender, EventArgs e)
{
    Panel clickedPanel = sender as Panel;
    if (clickedPanel != null)
    {
        // do something with clickedPanel
    }
}
于 2012-11-28T01:47:09.840 に答える
3
void Form1_Click(object sender, EventArgs e)
{
    var panel = sender as Panel;
    if (null != panel)
    {
        if (panel.Name.equals("Panel1"))
        {
             .. ...
        }
    }
}
于 2012-11-28T01:50:48.240 に答える