C# 在鼠标单击中区分面板
如果在表单中,我有10个面板,按1到10的顺序命名,并且所有面板都注册了相同的事件myPanel\u单击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 } 如果我理解正确,您应
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;
}
}