2014-10-20 5 views
1

Я использую C#, и у меня есть элемент управления MenuStrip, но я не знаю, как определить, какой элемент его щелкнул. Например, я использовал группировку всех событий click (кнопок) одним или двумя способами, такими как «btnActions_click()» или «btnNavigation_click()». Затем внутри метода я идентифицирую кнопку, щелкнув по синтаксическому разбору отправителя в качестве кнопки и поместив его на кнопку var, тогда я проверю, соответствует ли имя этой кнопки var «btnFoo» или «btnBar».Как узнать, что нажал элемент MenuStrip?

Итак, в этом случае, как я могу узнать, какой элемент элемента управления MenuStrip щелкнул, чтобы группировать все события кликов только одним способом?

Я извиняюсь, если мой английский неверен. Если вы не можете понять меня, я могу попробовать еще раз или опубликовать код.

Спасибо.

Редактировать: Я не размещал ни одного кода, потому что думал, что в этом вопросе нет необходимости, но кто-то предлагает мне сделать это, поэтому я сделаю это. Вот пример того, что я делаю, чтобы определить, какая кнопка была нажата.

private void btnNavegation_Click(object sender, EventArgs e) 
    { 
     Button btn = sender as Button; 

     if (btn.Name == "btnNext") 
      //go to next item of the list 
     else if (btn.Name == "btnPrevious") 
      //go to previous item of the list 
    } 
+0

Post код, всегда после кода. Предпочтительно что-то, что работает легко. – AndersNS

ответ

1

Я думаю, что вам нужно, чтобы подписаться на ItemClicked событие (унаследованного от ToolStrip), вместо того, чтобы подписаться на Click событие (унаследованного от Control).

Приведенный пример документацией Microsoft, показать вам, как определить щелкнул элемент при каждом вызове (ToolStripItemClickedEventArgs::ClickedItem):

private void ToolStrip1_ItemClicked(Object sender, ToolStripItemClickedEventArgs e) 
{ 
    System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder(); 
    messageBoxCS.AppendFormat("{0} = {1}", "ClickedItem", e.ClickedItem); 
    messageBoxCS.AppendLine(); 
    MessageBox.Show(messageBoxCS.ToString(), "ItemClicked Event"); 
}