void Form1_Click(object sender, EventArgs e)
{
var panel = sender as Panel;
if (null != panel)
{
if (panel.Name.equals("Panel1"))
{
.. ...
}
}
}
how to tell which panel fired the click event
题
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 sender
but 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
其他提示
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
}
}
不隶属于 StackOverflow