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 回答