Вопрос по tabpage, tabcontrol, winforms, c# – Я на 100% уверен, что они знают об этом.

4

я устанавливаю выравнивание TabControl вLeft или жеRight он оставляет это огромное пространство между кнопками вкладок и областью вкладок. Как избавиться от этого бесполезного пространства?

TabControl.Appearance установлен вButtons потому что если он установлен вNormal текст на кнопках исчезнет.

ОБНОВИТЬ:
Когда я установлюTabControl.Alignment вBottom а такжеTabControl.Appearance вNormal кнопки выглядят перевернутыми (оранжевая линия должна быть ниже)

Когда я установлюTabControl.Alignment вBottom а такжеTabControl.Appearance вButtons, Нет области наTabPage разместить элементы управления

Нет, в обычном режиме нет текста, если выровнены влево или вправо. Это причина, по которой я сменил режим SMUsamaShah
Интересно. Я только что попробовал это в C # 2010 Express, и я вижу поведение, которое вы здесь показываете. Тем не менее, когда я меняюAppearance вNormalвсе выглядит нормально, и текст все еще виден. Когда вNormal режим, вы когда-нибудь видели текст (во время разработки или во время выполнения)? Mark Carpenter
@ Код Грей, Дело в том, что мне не нравятся они сверху или слева в моем сценарии. Они должны быть выровнены либо снизу, либо справа SMUsamaShah
Хорошо, у меня есть другая проблема с ними внизу. увидеть изображения SMUsamaShah
Выровненные по сторонам вкладки отвратительны, а текст чрезвычайно трудно читать. Почему вы это делаете? Держите их сверху или снизу, куда они идут. Ваша жизнь будет намного проще, если вы будете следовать стандартным соглашениям. Cody Gray♦

Ваш Ответ

1   ответ
5

строенного элемента управления вкладками, только вкладки, правильно выровненные по верхнему рендеру. Эта ошибка не устранялась до 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);
}
Возможность обойти проблему с парой строк кода? Да, это отличная особенность. Winforms всегда делает это хорошо. Если вы имеете в виду «разве это не выглядит странно, я должен назвать это функцией», то нет, никто никогда не видел вертикальных вкладок с визуальным стилем. Они выглядят нормально. Hans Passant
Должен ли я считать это «особенность»? SMUsamaShah
Я на 100% уверен, что они знают об этом. Hans Passant
Спасибо, что работает. Если вы пытаетесь исправить форму, в которой уже есть TabControl, отредактируйте файл Designer.cs, найдите и замените System.Windows.Forms.TabControl на FixedTabControl. Mark Lakata
@HansPassant «Это известная проблема», знаете ли вы, когда ошибка была когда-либо отправлена ​​в Microsoft? Alessandro Jacopson

Похожие вопросы