2017-11-08 9 views
2

탭 헤더를 마우스 오른쪽 단추로 클릭 할 때 contextmenustrip을 보여 드리고 싶습니다.탭 페이지 헤더를 감지 (오른쪽) 클릭하십시오.

enter image description here

그러나, 나는 탭 헤더에 클릭을 감지 할 수있는 방법을 찾지 못했습니다.

누구나 그렇게 할 수있는 방법을 알고 있습니까?

+0

마우스 오른쪽 버튼 클릭을 확인하기 위해 마우스 두 번 클릭을 전환 할 수 있어야하며 정상적으로 작동해야합니다. https://stackoverflow.com/questions/25478922/how-to-trigger-event-when-clicking-on-a-selected-tab-page-header-of-a-tab-contro – Jaxi

+1

적절한 TabControl 이벤트를 만들고, 각 TabPage에 대해 'GetTabRect'를 호출하고,'Rectangle.Contains'를 호출하여 마우스 포인터가 포함되어 있는지 확인하십시오. 그런 다음, ContextMenuStrip을 적절한 탭에 표시하고 어떤 탭이 표시되는지 알게됩니다. – jmcilhinney

+0

감사합니다. @jmcilhinney 의견을 작성 하시겠습니까? – tmighty

답변

2
Private Sub tab1_MouseClick(sender As Object, e As MouseEventArgs) Handles tab1.MouseClick 

    For i As Integer = 0 To Me.tab1.TabPages.Count - 1 
     If Me.tab1.GetTabRect(i).Contains(e.X, e.Y) Then 

      If e.Button = MouseButtons.Right Then 
       'Do some stuff here Me.ctxTabHeader.Show(e.X, e.Y) 
      End If 

     End If 
    Next 

End Sub 
+0

좋은 답변입니다. 내가 가장 바깥 쪽 진술로 버튼 검사를 넣어 그래서 모든 루프 대신 한 번만 확인하는 것이 좋습니다거야. –