2014-10-20 4 views
1

나는 C#을 사용하고 있는데 MenuStrip 컨트롤이 있는데 어떤 항목을 클릭했는지 식별하는 방법을 모른다. 예를 들어, 모든 클릭 (버튼) 이벤트를 "btnActions_click()"또는 "btnNavigation_click()"과 같은 하나 또는 두 가지 방법으로 그룹화했습니다. 그런 다음 메서드 내에서 단추로 보낸 사람을 구문 분석하고 단추 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

포스트 일부 코드를 코드를 게시 : 마이크로 소프트의 문서에서 제공하는

예는 각각의 호출 (ToolStripItemClickedEventArgs::ClickedItem)를 클릭 한 항목을 결정하는 방법을 보여줍니다. 무언가 쉽게 달리기. – AndersNS

답변

1

내가 대신 (Control에서 상속) Click 이벤트에 가입, 당신은 (ToolStrip에서 상속) ItemClicked 이벤트에 가입 할 필요가 있다고 생각합니다. 항상

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"); 
} 
관련 문제