Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Порядок динамического создания контроллов. 
V
    Опции темы
tolan96
Дата 24.1.2011, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Добрый вечер.   smile 

Имеем:

1) Контролл-контейнер. (GroupBox, Panel...)
2) Контроллы-наполнители. (Button, TextBox...)
3) Все это сделанное в дизайнере и нормально отображающееся.
4) Желание создавать всё это динамически в программе.
5) Неправильное расположение контроллов-наполнителей в контейнере, при динамическом создании.

Вот порядок того, как всё это реализуется:
а) Объявляю и вызываю конструкторы всех элементов.
б) Вызываю SuspendLayout() для каждого контейнера (их у меня несколько)
в) Задаю все параметры отображения и расположения всем контроллам.
г) Вызываю ResumeLayout() (true, false).
д) Трачу 2 657 нервных клеток, разглядывая контроллы имеющие неправильное расположение. 


Что делать? Какой должен быть порядок?

Одними из контроллов-наполнителей являются Splitter'ы, Кажется основная проблема с ними.... Прижимаются к краю формы...

P.S. Все параметры копировал из дизайнера, создавшего код автоматически.

Это сообщение отредактировал(а) tolan96 - 24.1.2011, 18:09
PM MAIL   Вверх
KelTron
Дата 24.1.2011, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 745
Регистрация: 8.10.2006
Где: Красноярск

Репутация: 5
Всего: 38



Что не правильно отображается? Как должно быть правильно? Где код?

Без конкретики твоё сообщение равносильно "моя программа не работает".


--------------------
Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог.
Эвенгар Салладорский, основатель Школы Тьмы.
PM MAIL   Вверх
tolan96
Дата 24.1.2011, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Код выкладывать не буду - его очень много... ( это всё-таки определение контроллов ). Меня интересовал именно порядок действий. Правильный ли я соблюдал? Делал всё по аналогии Дизайнера.

А из ошибок отображения:

Так было при дизайнере.
Есть GroupBox, Splitter и Panel. Splitter, по координатам, находится между panel и groupBox. При создании в дизайнере всё отображалось правильно. При отображении после динамического создания splitter прилегает к верхнему краю. Panel прилегает к splitter'у, и соответственно все элементы расположенные на ней загорожены groupBox'ом...
Так стало при динамическом создании.

Это сообщение отредактировал(а) tolan96 - 24.1.2011, 20:00
PM MAIL   Вверх
tolan96
Дата 25.1.2011, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 22.12.2009

Репутация: нет
Всего: нет



Более внимательно посмотрел на то, что делается в дизайнере и начал делать инициализацию контроллов в точно таком же порядке (Раньше я его строил логически). В целом оказалось, что по порядок создания элементов обратный, т.е. сначала самый нижний(правый) элемент, а затем все по порядку к верхнему (левому краю). Так вначале создается panel, потом над ней втискивается splitter и в самом конце идет groupBox. Теперь всё выглядит приблизительно так как должно, но нужно еще немного доработать. ( Пропала некоторая функциональность при растяжении окна и перемещении splitter'a)
//===========================================
Просто забыл вызвать ResumeLayout() для TabPage... Теперь всё работает отлично. Спасибо!

Это сообщение отредактировал(а) tolan96 - 25.1.2011, 10:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.