3

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

private void myPanel_Click(object sender, EventArgs e)
{

}

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

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

3 回答 3

5

如果我理解正确,您应该能够将发件人转换为面板,然后获取名称属性。

private void myPanel_Click(object sender, EventArgs e)
{
    Panel target = sender as Panel;
    if(target != null)
        MessageBox.Show(target.Name);
}
于 2013-06-25T18:43:18.353 回答
0

您还可以通过将您的面板编号分配给相应的标签来使用标签属性来引用您的面板。

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;
   }
}
于 2013-06-25T18:50:15.273 回答
0
private void myPanel_Click(object sender, EventArgs e)
{
    MessageBox.Show((Panel)sender.Name);
}
于 2013-06-25T18:45:17.080 回答