Вы должны войти, чтобы создавать сообщения и темы.

Как сделать tabControl вертикальным? [Решено]

Добрый вечер. Как сделать tabControl вертикальным?
C# vertical tab control with horizontal text - Stack Overflow
Такой,
Пробовал ТАК текст не видно, что не так?

Спойлер
результат

Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.

Лайкнул Komoliddin
Komoliddin
Цитата: Adler от 30.10.2020, 17:13

Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.

Не знаю как вы это сделали, но у меня все равно не видно 🙁
Вы код сюда вставили ==> Form.cs ?

Спойлер

Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событие СкопированоDrawItem, а вы этого очевидно не сделали (ссылок: 0)...

Не сочтите за упрек, но уже не первую тему наблюдаю за вашими вопросами по C# и складывается впечатление, что вы не с того начали его учить. Как бы с середины, не понимая азов.  

Лайкнул Komoliddin
Komoliddin
Цитата: Adler от 30.10.2020, 18:37

Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событие СкопированоDrawItem, а вы этого очевидно не сделали (ссылок: 0)...

Спасибо все получилось! а можете подсказать как убрать или скрыть рамку с tabControl?


Комментарий модератора:
Посмотрите ➜ Как оформлять свои темы и комментарии

Получилось только так, скрестив с этим
Пример

Лайкнул Komoliddin
Komoliddin

то что надо, только у меня опять не получается, где секрет?

Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в СкопированоInitializeComponent(). Особенно в тип компонента, где вместо СкопированоTabControl ➔ СкопированоMyTabControl.
Еще изменен Скопированоthis.tabControl1.Margin и у каждого СкопированоtabPage*.UseVisualStyleBackColor в false (что-бы панели были не белые, а цвета формы).

Лайкнул Komoliddin
Komoliddin
Цитата: Adler от 30.10.2020, 19:51

Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в СкопированоInitializeComponent(). Особенно в тип компонента, где вместо СкопированоTabControl ➔ СкопированоMyTabControl.
Еще изменен Скопированоthis.tabControl1.Margin и у каждого СкопированоtabPage*.UseVisualStyleBackColor в false (что-бы панели были не белые, а цвета формы).

Можете помочь через TeamViewer?


Комментарий модератора:
Запрещено публиковать свои контакты.

Цитата: Komoliddin от 30.10.2020, 20:11

Можете помочь через TeamViewer?

Не вижу смысла. Я вам скинул рабочий пример. Смотрите внимательно, сравнивайте. Там не так уж и много кода, что бы в нем не разобраться...

Лайкнул Komoliddin
Komoliddin
Цитата: Adler от 30.10.2020, 20:35
Не вижу смысла. Я вам скинул рабочий пример. Смотрите внимательно, сравнивайте. Там не так уж и много кода, что бы в нем не разобраться...

Просто я новичок по c#, не понятно что куда?
Я добавил этот код

Спойлер

public class MyTabControl : TabControl
{
    private const int TCM_ADJUSTRECT = 0x1328;
    ///*
    protected override void WndProc(ref Message m)
    {
        if (m.Msg == TCM_ADJUSTRECT)
        {
            RECT rect = (RECT)(m.GetLParam(typeof(RECT)));
            rect.Left = this.Left - this.Margin.Left;
            rect.Right = this.Right + this.Margin.Right;
            rect.Top = this.Top - this.Margin.Top;
            rect.Bottom = this.Bottom + this.Margin.Bottom;
            Marshal.StructureToPtr(rect, m.LParam, true);
        }

        base.WndProc(ref m);
    }

после этот код

Спойлер

private void tabControl1_DrawItem(object sender, DrawItemEventArgs e)
{
    Graphics g;
    string sText;
    int iX;
    float iY;

    SizeF sizeText;
    TabControl ctlTab;

    ctlTab = (TabControl)sender;

    g = e.Graphics;

    sText = ctlTab.TabPages[e.Index].Text;
    sizeText = g.MeasureString(sText, ctlTab.Font);
    iX = e.Bounds.Left + 6;
    iY = e.Bounds.Top + (e.Bounds.Height - sizeText.Height) / 2;
    g.DrawString(sText, ctlTab.Font, Brushes.Black, iX, iY);
}

и результат нету... Что не так? или еще где-то что-то надо указать?

Я же все расписал, читайте внимательно и смотрите в свой код:

Цитата: Adler от 30.10.2020, 19:51

Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в СкопированоInitializeComponent(). Особенно в тип компонента, где вместо СкопированоTabControl ➔ СкопированоMyTabControl.
Еще изменен Скопированоthis.tabControl1.Margin и у каждого СкопированоtabPage*.UseVisualStyleBackColor в false (что-бы панели были не белые, а цвета формы).

Наглядно
Соответственно пишете вместо Скопированоnew VertTabControl.Form1.MyTabControl(); свое пространство имен.

Лайкнул Komoliddin
Komoliddin
Цитата: Adler от 31.10.2020, 20:46

Я же все расписал, читайте внимательно и смотрите в свой код:

огромное СПАСИБО вам! разобрался
Результат:

Спойлер