Это выглядит как какой-то костыль. Тонна ненужных манипуляций вместо пары строчек кода.
Это специально разработанный под эти нужды компонент. WF не ориентирована на какой то изощренный механизм компоновки контролов. Хотите более гибкое берите WPF.
Еще есть Dock параметр. можно там поставить полное заполнение.
Похоже, что даже определение собственной высоты это была непосильная задача для разработчиков. Они с этим не справились
После этого доверять им писать что-то более серьёзное - ну такое себе
Это как?
как в первом посте
При запуске программы свойство Height
выдаёт меньшее значение, чем когда дёргаешь размер окна мышью.
Да уж куда им, программистам Microsoft.
ох … серьезное. )))))
Ну есть qt со своей средой разработки. и еще вот
- 2 2 -Xcode.
- 3 3 — NetBeans.
- 4 4 — Eclipse.
- 5 5 — CodeLite.
- 6 6 — Qt Creator.
- 7 7 — Code::Blocks.
- 8 8 — Dev-C++
А несерьезную студию с несерьезными разработчиками надо обходить стороной. Вообще не понято что там эта кучка фрилансеров о себе возомнили.
Есть исходник найдите там ваш контрол и посмотрите логику рендеринга.
Так вы ж видимо сами так его установили и в обработчике ресайза ставите нужное.
А при чём тут они? Наверняка там тоже своих косяков хватает.
То есть, это вы хотите сказать, что WinForms
лишён косяков, а глюки с ресайзом я выдумал?
Всмысле что я установил? вот код:
scrollBarStreams.Left = tabControlMain.Width - scrollBarStreams.Width - 10;
scrollBarStreams.Top = 0;
scrollBarStreams.Height = tabPageStreams.Height;
panelStreams.Location = new Point(0, 0);
panelStreams.Width = scrollBarStreams.Left;
panelStreams.Height = tabPageStreams.Height;
Ну тут не косяк. Тут то непонимание работы механизмов и игнорирование методов которые предлагаются производителем.
Какой смысл ковырять и выравнивать все руками если есть нормальная таблица. И все будет силами самого фрейморка обрабатываться.
может быть потому что руками это сделать проще и быстрее, написав пару строчек? и не нужны никакие таблицы
Ну написать то конечно быстрее… а вот на отладку еще не один день потратите. А если вдруг нужно будет большой проект написать где куча всяким компонентов взаимодействует и влияет друг на друга то там такие чудеса вас будут ждать что замучаетесь искать где какое выравнивание к чему приводит.
Это я уже молчу что каждое изменение размеров приводит к событию ресайза и вы рискуете своими действиями просто подвесить приложение. Оно будет вечно само себя ровнять. на пиксель но этот поток будет вечен и придется думать над костылями чтобы его хоть как то остановить.
А так то конечно. Никто вам не запрещает писать свои костыли. )))
я, наверное, устарел
Ну так вот и как винформс должен догадаться сделать это при запуске?)
а кинули б сразу какой-нибудь Anchor или Dock или TableLayout — было б всё само.
И разве у панели нет своего скролла?
Dock Fill
у табконтрола, AutoScroll
у вкладки, Anchor Left+Top+Right
у элементов.
а что такого?
Ну так надо тогда и при запуске этот код вызывать.
И как я говорил выше, возможно Load
слишком рано для этого.
ну так я писал Shown += Resize
и было ровно то же самое.
а когда не рано? Событий-то больше никаких нет.
И что с ним делать? Там только два варианта: GrowOnly
и GrowAndShrink
. Если стоит первое, то ресайзить окно можно. А если второе, то нельзя. Курсор мыши не меняется при наведении на границы окна.
Почему это свойство нельзя было так и назвать CanResize
?
Упс, сорян. Лошара по жизни. Не туда посмотрел. Названия похожи.
Однако, поставил None
и ничего не изменилось