Domanda

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!
        }
È stato utile?

Soluzione 2

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

Altri suggerimenti

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
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top