C# 在鼠标单击中区分面板

C# 在鼠标单击中区分面板,c#,winforms,panel,C#,Winforms,Panel,如果在表单中,我有10个面板,按1到10的顺序命名,并且所有面板都注册了相同的事件myPanel\u单击 private void myPanel_Click(object sender, EventArgs e) { } 我可以在这10个面板中检索我单击的面板的名称吗 int panelClicked; private void myPanel_Click(object sender, EventArgs e) { //not a single clue } 如果我理解正确,您应

如果在表单中,我有10个面板,按1到10的顺序命名,并且所有面板都注册了相同的事件myPanel\u单击

private void myPanel_Click(object sender, EventArgs e)
{

}
我可以在这10个面板中检索我单击的面板的名称吗

int panelClicked;
private void myPanel_Click(object sender, EventArgs e)
{
    //not a single clue
}

如果我理解正确,您应该能够将发送者转换为面板,然后使用name属性

private void myPanel_Click(object sender, EventArgs e)
{
    Panel target = sender as Panel;
    if(target != null)
        MessageBox.Show(target.Name);
}
您还可以通过将面板编号指定给相应的标记,让我们参考您的面板

private void myPanel_Click(object sender, EventArgs e)
{
   Panel p = (Panel)sender;
   switch ((int)p.Tag )
   {
       case 1:
           // Your Code for Panel 1
           break;
       case 2:
           // Your Code for Panel 2 
           break;
       // Your other Panels here
       default:
           break;
   }
}

我已经编辑了你的标题。请参阅“”,其中的共识是“不,他们不应该”。@Fabian Bigler,当您自己调用该方法时,或者有时在数据绑定期间
private void myPanel_Click(object sender, EventArgs e)
{
   Panel p = (Panel)sender;
   switch ((int)p.Tag )
   {
       case 1:
           // Your Code for Panel 1
           break;
       case 2:
           // Your Code for Panel 2 
           break;
       // Your other Panels here
       default:
           break;
   }
}