Pergunta

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!
        }
Foi útil?

Solução 2

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

Outras dicas

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
    }
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top