Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
1

Группирование control-ов на форме

15.08.2012, 12:14. Показов 1497. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И снова добрый день.

Сделал программу - заказчику не нравятся разделители групп control'ов на форме. Прилагаю два изображения.

Слева - мой вариант. Я писал на Visual C# 2010 Express и для группировки использовал GroupBox.

Справа - вариант, который хочет заказчик. Насколько я знаю, это написано на Delphi с использованием TPanel.

Подскажите, как наименьшей кровью добиться такого вида, как справа, в VC#. Спасибо.
Миниатюры
Группирование control-ов на форме   Группирование control-ов на форме  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2012, 12:14
Ответы с готовыми решениями:

Не могу найти control на большой форме
Коллеги, У меня имеется крупный проект для биржевой торговли, я занимаюсь его модификацией под...

Определить если Control полностью отрисован на форме
Каким способом можно определить если Control полностью отрисован в контейнере или только частично?

Какая разница между Web server control, Composite control и User Control
Подскажите, пожалуйста, какая разница между Web server control, Composite control и User Control, а...

Создание control-ов на форме другой БД в vba
Добрый день! У меня не получается создать любой control на новой, создаваемой форме. Форма...

10
Темная сторона .Net
592 / 489 / 39
Регистрация: 21.07.2012
Сообщений: 1,668
15.08.2012, 12:24 2
Он хочет чтоб были разделители или стиль похожий,тут ведь тоже есть панельки и стиль сменить можно на fixed3d(похож по-моему)

Если с разделителями то splitterPanel а потом еще один split используя Dock.Left и vertical для сплита

Добавлено через 1 минуту

Не по теме:

Мне лично твой вариант больше нравится и кажется практичнее

0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
15.08.2012, 17:28  [ТС] 3
Да. Смотрел Fixed3D - врядли устроит заказчика. SplitterContainer тоже поддерживает BorderStyle только None, FixedSingle и Fixed3D. Это не годится. Control'а SplitterPanel не нашел.

Есть TableLayoutPanel. У нее есть CellBorderStyle - Inset - как раз то, что нужно. Но она позволяет рисовать только такую, как слева, то есть m строк на n столбцов. А мне нужна такая, как справа.

Мне таки удалось добиться вида, который требовался. Я взял один TableLayoutPanel: 2 столбца и 2 строки - и другой TableLayoutPanel: 1 столбец и одна строка. Вторым TableLayoutPanel перекрыл нижнюю строку первого TableLayoutPanel. Это конечно крашеный кубик Рубика.

Буду признателен, если поделитесь, как это можно сделать технически красиво.
Миниатюры
Группирование control-ов на форме   Группирование control-ов на форме  
0
17 / 17 / 2
Регистрация: 19.12.2008
Сообщений: 89
15.08.2012, 17:40 4
А можно немного конкретнее чего хочет заказчик, а то из скрина не особо ясно...?
0
101 / 101 / 15
Регистрация: 23.05.2012
Сообщений: 260
15.08.2012, 17:48 5
Все верно. TableLayoutPanel для этого и придуман.

Единственно что по логике 1-ый TableLayoutPanel содержит 2 строки
2-ой TableLayoutPanel в первой строке
0
101 / 101 / 15
Регистрация: 23.05.2012
Сообщений: 260
15.08.2012, 17:49 6
Все верно. TableLayoutPanel для этого и придуман.

Единственно что по логике 1-ый TableLayoutPanel содержит 2 строки
2-ой TableLayoutPanel в первой строке
0
17 / 17 / 2
Регистрация: 19.12.2008
Сообщений: 89
15.08.2012, 18:03 7
TableLayoutPanel1:
- Dock = Top
- CellBorderStyle = Inset
- Colums = 2 штуки : 1й - Absolute(...), 2й - Percent(...)
- Rows = 1 штукa : Percent(100%)

TableLayoutPanel2:
- Dock = Fill
- CellBorderStyle = None
- Colums = 1 штука : Percent(100%)
- Rows = 1 штукa : Percent(100%)
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
16.08.2012, 17:48  [ТС] 8
Немного поменял layout, но смысл тот же. Почти добился результата.

Делаю
C++
1
2
3
4
5
6
        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
        private System.Windows.Forms.Panel panel1;
 
        // ...
        this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
        this.tableLayoutPanel1.SetRowSpan(this.panel1, 3);
единственное, что не устраивает, это то, что panel1 не закрывает до конца разделители слева (обведены кругами) - продолжения разделителей, что отмечены стрелками.
Поставил у panel1 свойства Margin и Padding в 0; 0; 0; 0, и все равно Location получается 2; 2, даже если править руками на 0; 0 хоть во вкладке Properties, хоть
C#
1
            this.panel1.Location = new System.Drawing.Point( 0, 0 );//(2, 2);
Подскажите, как победить эти черточки в кругах.
Миниатюры
Группирование control-ов на форме  
0
912 / 672 / 134
Регистрация: 01.03.2010
Сообщений: 1,273
16.08.2012, 22:31 9
GoldenId,
"Поиграй" со splitContainer
Вот простенький пример. Кинь на форму один splitContainer в стык другому

Между панелями будет сплиттер.Три пунктирные полоски. Кликни по средней, и можно будет менять панель с вертикальной на горизонтальную
Вложения
Тип файла: zip splitContainer.zip (45.4 Кб, 7 просмотров)
0
142 / 143 / 64
Регистрация: 11.11.2010
Сообщений: 876
Записей в блоге: 10
17.08.2012, 14:50  [ТС] 11
Евгений В, да, все так, но к сожалению BorderStyle только None, Fixed Single и Fixed 3D. Варианта Inset нет.

Green, да, читал эту страницу. Так эту форму и делал. Остаются те зазоры, которые я обводил кружочками.
0
17.08.2012, 14:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2012, 14:50
Помогаю со студенческими работами здесь

Как вывести номера Control-ов на форме для более удобного контроля
может кому пригодится Если на форме используется много Контролов (например - когда вынужден...

Add.Control. Как и где можно проставить индекс вновь созданного на форме объекта?
Подскажите кто-нить, пожалуйста. Как и где можно проставить индекс вновь созданного на форме...

Группирование
таблица вида: id_a, id_b, creation_date 1 1 2 1 4 1 2 1 2 1...

Группирование и сумма
Написал запрос: SELECT view_goods.view_goods as , case MONTH(selling.data) when 1 then...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru