문제

i have an array of panel controls that are placed in various place programatically in my form. Below you can see that as I loop through and increase I, all the panels are registered with the same event handler. This is fine with me, but I cant find a way to tell which panel fired the event, in the event handler code. I tried using senderbut I cant seem to figure out how to use it. So my question is how can I tell which panel fired the event, in the event handler code

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

  void AllPanels_Click(object sender, EventArgs e)
        {
           //need logic code here!
        }
도움이 되었습니까?

해결책 2

void Form1_Click(object sender, EventArgs e)
{
    var panel = sender as Panel;
    if (null != panel)
    {
        if (panel.Name.equals("Panel1"))
        {
             .. ...
        }
    }
}

다른 팁

Cast sender to a Panel first:

void Form1_Click(object sender, EventArgs e)
{
    Panel clickedPanel = sender as Panel;
    if (clickedPanel != null)
    {
        // do something with clickedPanel
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top