2016-09-04 5 views
1

C# WinForm 응용 프로그램을 작성하고 있습니다. 탭 컨트롤이 있고 메뉴로 새 탭을 추가하고 삭제할 탭을 두 번 클릭하는 것과 같은 모든 기능을 이미 미리 설정했습니다. 내 문제는 이제 탭 컨트롤의 빈 회색 공간을 두 번 클릭 할 때마다 탭을 만들고 싶습니다.C# Tab 컨트롤 빈 공간 더블 클릭

저는 약 1 시간 동안 검색을 해왔으며 WPF를 다루는 것이 많아서 곧 조사 할 생각이었습니다. 그래서 나는 더블 클릭을 감지 할 수있는 방법을 찾기 위해 문제를 찾고 있습니다. 내가 시도한 double clickmouse double click 두 번 클릭하면 탭에서 작동하고 마우스 더블 클릭은 마우스 이벤트 인수를 캡처한다는 점만 제외하면 동일한 작업을 수행합니다. 그것은 단지 탭 자신에 대한 정보를 제공하는 경우를 제외하고 그럼 나는

e.Location

를 사용할 수 있어요. 누구든지 탭 외부에서 더블 클릭을 캡처하기위한 제안이 있습니까? 마우스를 더블 클릭하는 것과 같은 부모님의 시도를 시도해 보았습니다. 대신 클릭을 처리 할 수있는 완전히 불투명 한 요소를 만들려고했으나 매번 벽돌 벽에 부딪 혔습니다.

private void Tabs_MouseDoubleClick(object sender, MouseEventArgs e) 
{ 
     //only works when double clicking tabs 
     MessageBox.Show(e.Location.ToString()); 
} 
+0

그 작업을 수행하는 방법을 알고하지 않습니다하지만 난 모두 더블 행동이 나에게 오히려 비 직관적 인 것 같습니다 것을 알고있다. 탭에 X를 추가하고 탭 컨트롤에 + 페이지를 추가하면 사용자가 기대하는 표준이됩니다. - Lol : 그냥 똑같은 반응 [여기] (http://stackoverflow.com/questions/4983389/how-to-handle-a-double-click-on-a-tabcontrols-tabs-panels-empty- space? rq = 1) – TaW

+1

[ '닫기 및 추가 단추가있는 TabControl] (http://stackoverflow.com/questions/36895089/tabcontrol-with-close-and-add-button) 또는 ['WinForms TabControl - 새 탭 단추 추가 (+) '] (http://stackoverflow.com/questions/6738126/winforms-tabcontrol-add-new-tab-button) –

+2

그 부분은 마우스 및 모든 마우스 이벤트를 통과하는 것 같습니다 부분을 ​​통과하여 그 부분 뒤에있는 컨트롤에 의해 수신 될 것입니다. 그래서 임시 해결 방법으로'TabControl'을'Panel'에 넣고'TabControl'의'Dock' 속성을 true로 설정하고'Panel'의 핸들'DoubleClick' 이벤트를 설정할 수 있습니다. –

답변

2

TabControl의 부분이 마우스로 투명하고 모든 마우스 이벤트는 부분을 통과하는 부분 뒤에 제어에 의해 수신 될 것으로 보인다.

그래서 해결 방법으로 당신은 Panel에서 TabControl을 넣을 수 및 FillTabControlDock 속성을 설정하고 Panel의 손잡이 DoubleClick 이벤트입니다. 또한 마우스 후크 옵션이 있지만 패널 옵션이 더 간단하다고 생각합니다.

대조군의 마우스 trasparent 부분은 아래 이미지에서 붉은 색으로 표시됩니다. 또한 컨트롤의 경계는 해당 영역의 일부입니다.

enter image description here