2013-10-02 4 views
2

원하는 모든 것을 아래 그림과 같이 표시합니다. 내가 어떻게 그걸 얻을 수 있니? tabcontrol tabpages에 버튼을 추가하는 방법

enter image description here

방법을 TabControl의 tabpages에서 어떤 버튼을 추가하려면? 아니면 사용자 정의 컨트롤을 만들어야합니까?

첫 번째 사진은 비주얼 스튜디오에서 가져오고 두 번째 사진은 포토샵에서 가져 왔습니다.

나는 또한 사용자가 닫을 수있는 방법을 찾을 수 있지만 더 많은 사용자에게 친숙하므로 실제로이를 수행해야합니다.

+2

[탭 페이지에서 닫기 버튼 구현] (http://www.dotnetthoughts.net/implementing-close-button-in-tab-pages/)을 참조하십시오. WPF는 일반적으로 이런 상황에서 권장됩니다. – LarsTech

답변

1

당신이 이미 보여준 첫 번째 예제는 WPF을 이미 알고 있다면 을 사용하여 쉽게 만들 수 있습니다. 두 번째 예제는 Photoshop과 유사하며 대부분 사용자 정의 C++ Win32 컨트롤입니다.

그러나 WinForms로 작업하는 경우 일반적으로 표준 컨트롤을 사용하여 이러한 종류의 사용자 지정을 수행 할 수 없습니다. Control에서 파생하고 페인팅을 처리하고 과거 입력 한 내용을 입력하여 나만의 TabControl을 작성할 수 있지만 많은 작업이 필요합니다. 특히 각 탭에 대해 하위 컨트롤 목록을 관리해야한다는 점을 감안하면 그리고 다른 컨트롤과 패널을 각 탭으로 드래그 앤 드롭하고 Visual Studio Designer에서 탭 속성을 수정하는 디자인 타임 지원이 필요할 수도 있습니다. 이 길로 가면 아무 것도 끝나지 않습니다.

강력한 사용자 정의 컨트롤을 작성하는 데 WPF를 배우고 싶지 않고 그 주를 보내고 싶지 않으면 Telerik, DevExpress, Infragistics, 등등, 당신은 단순히 이미 이것을 수행 TabControl 제어 라이브러리에 대한 비용을 지불 할 수 있습니다.

+1

정말 유용한 대답이었고 기꺼이 지불하지 않으려 고했지만, 오히려 일주일에 1 페니를 지불하는 것보다 맞춤 컨트롤러를 작성하는 데 감사의 뜻을 전할 수 있습니다. –

+1

이력서에 기재하지 마십시오. – rheitzman

0

여기

는 탭 이름의 끝 부분에 약간의 공간과 X 추가 ... 그것을 할 수있는 바보 같은 방법입니다. 클릭에서 심지어 마우스 X를 캡처하고

Private Sub TabControl1_Click(sender As System.Object, e As System.EventArgs) Handles TabControl1.Click 
    Dim m As System.Windows.Forms.MouseEventArgs = DirectCast(e, System.Windows.Forms.MouseEventArgs) 
    Dim tabWidth As Integer = 
     Convert.ToInt32(Me.CreateGraphics().MeasureString(TabControl1.SelectedTab.Text, TabControl1.Font).Width) 
    Debug.Print(m.X & " " & m.Y & " " & tabWidth) 
End Sub 

하위이/Func을이 탭이 표시되는 회계 핫스팟을 계산하는 데 필요한 X를 초과하는 경우를 참조하십시오. 표시된 탭을 반복하고 위와 같이 tabWidth를 사용하여 수학을 수행합니다.