Как сделать tabControl вертикальным? [Решено]
Цитата: Komoliddin от 30.10.2020, 15:42Добрый вечер. Как сделать tabControl вертикальным?
Такой,
Пробовал ТАК текст не видно, что не так?
[spoiler][/spoiler]
Добрый вечер. Как сделать tabControl вертикальным?
Такой,
Пробовал ТАК текст не видно, что не так?
Цитата: Adler от 30.10.2020, 17:13Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.
Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.
Цитата: Komoliddin от 30.10.2020, 18:33Цитата: Adler от 30.10.2020, 17:13Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.
Не знаю как вы это сделали, но у меня все равно не видно 🙁
Вы код сюда вставили ==> Form.cs ?
[spoiler][/spoiler]
Цитата: Adler от 30.10.2020, 17:13Добрый день.
В конструкторе не видно, а в запушенном проекте все нормально.
Не знаю как вы это сделали, но у меня все равно не видно 🙁
Вы код сюда вставили ==> Form.cs ?
Цитата: Adler от 30.10.2020, 18:37Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событиеDrawItem, а вы этого очевидно не сделали (ссылок: 0)...Не сочтите за упрек, но уже не первую тему наблюдаю за вашими вопросами по C# и складывается впечатление, что вы не с того начали его учить. Как бы с середины, не понимая азов.
Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событие СкопированоDrawItem, а вы этого очевидно не сделали (ссылок: 0)...
Не сочтите за упрек, но уже не первую тему наблюдаю за вашими вопросами по C# и складывается впечатление, что вы не с того начали его учить. Как бы с середины, не понимая азов.
Цитата: Komoliddin от 30.10.2020, 18:48Цитата: Adler от 30.10.2020, 18:37Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событиеDrawItem, а вы этого очевидно не сделали (ссылок: 0)...Спасибо все получилось! а можете подсказать как убрать или скрыть рамку с tabControl?
[MNotice]Посмотрите ➜ Как оформлять свои темы и комментарии[/MNotice]
Цитата: Adler от 30.10.2020, 18:37Все по инструкции с вашей же ссылки. Пример
P.S. Текст не видно, если не добавить событиеСкопированоDrawItem, а вы этого очевидно не сделали (ссылок: 0)...
Спасибо все получилось! а можете подсказать как убрать или скрыть рамку с tabControl?
Комментарий модератора:
Посмотрите ➜ Как оформлять свои темы и комментарии
Цитата: Komoliddin от 30.10.2020, 19:28то что надо, только у меня опять не получается, где секрет?
то что надо, только у меня опять не получается, где секрет?
Цитата: Adler от 30.10.2020, 19:51Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в
InitializeComponent(). Особенно в тип компонента, где вместоTabControl➔MyTabControl.
Еще измененthis.tabControl1.Marginи у каждогоtabPage*.UseVisualStyleBackColorв false (что-бы панели были не белые, а цвета формы).
Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в СкопированоInitializeComponent(). Особенно в тип компонента, где вместо СкопированоTabControl ➔ СкопированоMyTabControl.
Еще изменен Скопированоthis.tabControl1.Margin и у каждого СкопированоtabPage*.UseVisualStyleBackColor в false (что-бы панели были не белые, а цвета формы).
Цитата: Komoliddin от 30.10.2020, 20:11Цитата: Adler от 30.10.2020, 19:51Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в
InitializeComponent(). Особенно в тип компонента, где вместоTabControl➔MyTabControl.
Еще измененthis.tabControl1.Marginи у каждогоtabPage*.UseVisualStyleBackColorв false (что-бы панели были не белые, а цвета формы).Можете помочь через TeamViewer?
[MNotice]Запрещено публиковать свои контакты.[/MNotice]
Цитата: Adler от 30.10.2020, 19:51Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в
СкопированоInitializeComponent(). Особенно в тип компонента, где вместоСкопированоTabControl➔СкопированоMyTabControl.
Еще измененСкопированоthis.tabControl1.Marginи у каждогоСкопированоtabPage*.UseVisualStyleBackColorв false (что-бы панели были не белые, а цвета формы).
Можете помочь через TeamViewer?
Комментарий модератора:
Запрещено публиковать свои контакты.
Цитата: Adler от 30.10.2020, 20:35Цитата: Komoliddin от 30.10.2020, 20:11Можете помочь через TeamViewer?
Не вижу смысла. Я вам скинул рабочий пример. Смотрите внимательно, сравнивайте. Там не так уж и много кода, что бы в нем не разобраться...
Цитата: Komoliddin от 30.10.2020, 20:11Можете помочь через TeamViewer?
Не вижу смысла. Я вам скинул рабочий пример. Смотрите внимательно, сравнивайте. Там не так уж и много кода, что бы в нем не разобраться...
Цитата: Komoliddin от 31.10.2020, 17:10Цитата: Adler от 30.10.2020, 20:35
Не вижу смысла. Я вам скинул рабочий пример. Смотрите внимательно, сравнивайте. Там не так уж и много кода, что бы в нем не разобраться...Просто я новичок по c#, не понятно что куда?
Я добавил этот код
[spoiler]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); }[/spoiler]
после этот код
[spoiler]
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); }[/spoiler]
и результат нету... Что не так? или еще где-то что-то надо указать?
Цитата: 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 от 31.10.2020, 20:46Я же все расписал, читайте внимательно и смотрите в свой код:
Цитата: Adler от 30.10.2020, 19:51Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в
InitializeComponent(). Особенно в тип компонента, где вместоTabControl➔MyTabControl.
Еще измененthis.tabControl1.Marginи у каждогоtabPage*.UseVisualStyleBackColorв false (что-бы панели были не белые, а цвета формы).Наглядно
Соответственно пишете вместоnew VertTabControl.Form1.MyTabControl();свое пространство имен.
Я же все расписал, читайте внимательно и смотрите в свой код:
Цитата: Adler от 30.10.2020, 19:51Ну так я вам пример cкинул (ссылка та же, только файл перезалил). Внимательно смотрите в
СкопированоInitializeComponent(). Особенно в тип компонента, где вместоСкопированоTabControl➔СкопированоMyTabControl.
Еще измененСкопированоthis.tabControl1.Marginи у каждогоСкопированоtabPage*.UseVisualStyleBackColorв false (что-бы панели были не белые, а цвета формы).
Наглядно
Соответственно пишете вместо Скопированоnew VertTabControl.Form1.MyTabControl(); свое пространство имен.
Цитата: Komoliddin от 01.11.2020, 10:50Цитата: Adler от 31.10.2020, 20:46Я же все расписал, читайте внимательно и смотрите в свой код:
огромное СПАСИБО вам! разобрался
Результат:
[spoiler]
![]()
[/spoiler]
Цитата: Adler от 31.10.2020, 20:46Я же все расписал, читайте внимательно и смотрите в свой код:
огромное СПАСИБО вам! разобрался
Результат:




