我的winform中有两个面板。panel 1是蓝色的,panel 2是红色的。我想知道是否有一个函数可以告诉我点击了哪个面板,否则就使用私有的void panel1_Click(object sender,EventArgs{}函数。谢谢,下面是我的代码:
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
Control control = this.GetChildAtPoint(e.Location);
if (control is Panel)
{
Panel clickedPanel = (Panel)control;
if (clickedPanel.Name.Equals("panel1"))
{
MessageBox.Show("you clicked on blue panel");
}
else
{
MessageBox.Show("you clicked on red panel");
}
}
}
这个功能不起作用,我不知道该怎么办.
我尝试了许多功能,但我不能搜索任何“通用”功能,这告诉我点击了什么对象。
1条答案
按热度按时间kupeojn61#
您已为窗体单击事件处理程序附加了一个函数,该函数将处理窗体上的鼠标单击事件,而不是面板上的事件。如果可以在设计器上查看面板,则可以双击每个面板,IDE将自动生成处理每个面板的鼠标单击事件的方法,或者可以在窗体的构造函数中为每个面板添加事件处理程序,如下所示