2011-02-07 2 views
4
내가 Left 또는 Right는 탭 버튼과 탭 페이지 영역 사이의이 거대한 공간 나뭇잎에있는 TabControl 정렬을 설정

. 이 쓸모없는 공간을 제거하는 방법?윈폼을 TabControl 정렬 문제

TabControl.AppearanceNormal으로 설정하면 단추의 텍스트가 사라지기 때문에 Buttons으로 설정됩니다.

tabcontrol

업데이트 : BottomTabControl.Alignment 설정하고 TabControl.AppearanceNormal에 버튼 (오렌지 라인 이하이어야한다)
BottomTabControl.Alignment 설정 tab control

TabControl.AppearanceButtons을 반전 보일
, 컨트롤을 배치하는 데 TabPage 영역이 없습니다.

+0

흥미 롭. C# 2010 Express에서이 작업을 시도해 보았습니다. 여기에 표시되는 동작이 표시됩니다. 그러나 'Appearance'를 'Normal'로 변경하면 모든 것이 정상적으로 보이고 텍스트는 계속 표시됩니다. 'Normal' 모드에서 텍스트를 보지 못했습니다 (디자인 타임에 또는 런타임에)? – Pwninstein

+0

아니요, 왼쪽 또는 오른쪽으로 정렬 할 때 표준 모드의 텍스트가 없습니다. 이것이 내가 모드를 변경 한 이유입니다. – SMUsamaShah

+0

옆으로 정렬 된 탭은 끔찍하며 텍스트를 읽기가 극히 어렵습니다. 왜 이런 짓을하는? 그들이 가면 상단이나 하단에 보관하십시오. 표준 규칙을 따르면 인생은 훨씬 단순해질 것입니다. –

답변

5

이 (210)는 기본 탭 컨트롤에 대한 XP 비주얼 스타일 구현 잘 알려진 문제, 상단에 정렬에만 탭이 제대로 렌더링. 이 버그는 Windows 7까지 해결되지 않았습니다. 해결 방법은 스타일을 선택적으로 해제하는 것입니다. 프로젝트에 새 클래스를 추가하고 아래 표시된 코드를 붙여 넣습니다. 엮다. 새 컨트롤을 도구 상자의 위쪽에서 폼으로 끌어다 놓고 Alignment 속성을 원하는대로 변경하십시오. 그것은 그것보다 예쁘게 보이지 않을 것입니다.

using System; 
using System.Windows.Forms; 
using System.Runtime.InteropServices; 

class FixedTabControl : TabControl { 

    protected override void OnHandleCreated(EventArgs e) { 
     SetWindowTheme(this.Handle, "", ""); 
     base.OnHandleCreated(e); 
    } 

    [DllImportAttribute("uxtheme.dll")] 
    private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist); 
} 
+0

'기능'으로 생각해야합니까? – SMUsamaShah

+1

두 줄의 코드로 문제를 해결할 수 있습니까? 그렇습니다, 그것은 아주 특징입니다. WinForms 항상 그 잘 않습니다. "이상하게 보이지 않는다"는 뜻이라면 누구도 비주얼 스타일로 세로 탭을 보지 못했습니다. 그들은 정상적으로 보입니다. –

+0

고맙습니다. 이미 TabControl이있는 양식을 수정하려는 경우 Designer.cs 파일을 편집하여 System.Windows.Forms.TabControl을 검색하고 바꿀 수 있습니다. –