Различать панель в щелчке мыши

Если в форме у меня есть 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
}

3 ответа

Решение

Если я вас правильно понимаю, вы сможете использовать отправителя как панель, а затем использовать свойство 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)
{
    MessageBox.Show((Panel)sender.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;
   }
}
Другие вопросы по тегам