2012-04-04 2 views
2

У табуляций есть отступы между границей и внутренними элементами управления. Есть ли способ удалить это дополнение?C# Удалить прокладку из вкладки в Windows Forms

Это необходимо, так как TabControl будет выглядеть плохо, если его состыковать в родительском контейнере.

Я пробовал какой-то метод переопределения, но это не сработало.

+0

возможно дубликат [Как я могу удалить границы отступов на контрольной контейнеровозов в WinForms] (http://stackoverflow.com/questions/4968267/how-can-i-remove-the-border-padding-on-container-controls-in-winforms) –

+0

Я не уверен в дополнении, но вы не можете сделать внешний фон/границу tabcontrol тем же в качестве родительского контейнера, чтобы он входил. (т.е. border = none) – Kyra

+0

@JustinPihony Я пробовал код в ссылке «Этот ответ», и он дал мне стиль TabControl в стиле win2k. С параметром «Explorer» в качестве параметра никаких изменений не было. Kyra: TabControl не имеет свойства Border, а по умолчанию для границы Bазетки Tab по умолчанию установлено значение None. – bytecode77

ответ

5

я узнал, что это может быть достигнуто с помощью WndProc:

public class TabControl2 : TabControl 
{ 
    protected override void WndProc(ref Message m) 
    { 
     if (m.Msg == 0x1300 + 40) 
     { 
      RECT rc = (RECT)m.GetLParam(typeof(RECT)); 
      rc.Left -= 7; 
      rc.Right += 7; 
      rc.Top -= 2; 
      rc.Bottom += 7; 
      Marshal.StructureToPtr(rc, m.LParam, true); 
     } 
     base.WndProc(ref m); 
    } 
} 

public struct RECT 
{ 
    public int Left, Top, Right, Bottom; 
} 
+0

Это движение в правильном направлении, но удаление границы. Далее наверху оставалось белое дополнение. Это привело к самым чистым результатам для меня: http://stackoverflow.com/a/7785745/920511 – Knickedi

 Смежные вопросы

  • Нет связанных вопросов^_^