Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Splitter компонент


Автор: Coocky 21.4.2005, 20:24
Вот добавляю на форму,а что дальше?Упрямо лезет к привязаному краю..
А как между элементами сделать?Или внутри панель?

Автор: Kurt 21.4.2005, 20:53
Ну, если упрощенно:
допустим, нам надо сделать форму, на к-й будут две панели, разделенные горизонтальным сплиттером.
Делаем так:
1) кидаем на форму первую панель и ставим ей
Код
panel1.Dock = System.Windows.Forms.DockStyle.Top

2) добавляем сплиттер и тоже ставим ему
Код
splitter1.Dock = System.Windows.Forms.DockStyle.Top

3) добавляем вторую панель и ставим
Код
panel2.Dock = System.Windows.Forms.DockStyle.Fill


ФФсё. Думаю, логику ты понял.

З.Ы. Ессно, св-во Dock можно просто выставить Properties Window.

Автор: Coocky 22.4.2005, 11:01
Kurt
Не понял...Че у меня не работает?
Вот смотри:
Цитата
panel1.Dock = System.Windows.Forms.DockStyle.Top

Первая панель крепится к верху
Цитата
splitter1.Dock = System.Windows.Forms.DockStyle.Top

сплитер крепится к верху
Цитата
panel2.Dock = System.Windows.Forms.DockStyle.Fill

Затем "заливаем" оставшеюся область второй панелью?
Помоему у меня не работает...





Автор: Kurt 22.4.2005, 13:11
Хм. Все должно работать.
Вот, я тебе прикрепляю пример. Здесь текстовое поле и таблица разделены сплиттером. Я взял именно эти контролы, т.к. на них наиболее явно можно посмотреть результат - панели не так "эффектны".
Это целиком проект VS2003. Там есть exe-шник - можешь сразу запускать.
Обрати внимание, что.. как бы так сказать.. граница между текстбоксом и датагридом двигается.
Если что - спрашивай.

Автор: Coocky 22.4.2005, 21:15
Работает.Только вот проблемка.
Сделал Панель и листбокс.Все работает.
Только листбокс недотягивает до нижнего края 4-5 мм.А панель нормально.Как бороться.Как-то рогато получается

Автор: Kurt 22.4.2005, 21:23
Coocky
Покажи скриншот, что ты имеешь ввиду..

Автор: Coocky 25.4.2005, 21:39
Ну смотри,если ты возмешь Panel и скажешь ей Fill то останется от нижнего края окна бордюр 2мм(как впрочем и от других краев) ,а у листвокса 5мм

Автор: Дрон 26.4.2005, 18:52
Coocky
Листбох по умолчанию регулирует свою высоту так, чтобы в нём были видны только целые строки.
Поставь свойство Integral height в false.

Автор: MAK 12.6.2006, 20:26
А как менять расположение сплитера во время исполнения программы, т.е. мне необходимо, чтобы при изменении размеров формы, сплитер делил ее (форму) в соотношении 2 к 1, т.е. был от левого края приблизительно в 60%?  smile

Добавлено @ 20:35 
Разобрался.... Оказывается достаточно просто изменить параметры (ширину, высоту...) элемента, находящегося рядом  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)