Добавление панелей в форму в C # во время выполнения - PullRequest
1 голос
/ 22 февраля 2012

Я впервые погрузился в C #, пытаясь воссоздать заставку, которую я сделал на Java, состоящую из сетки панелей, которые меняют цвет случайно. До сих пор я получил код для работы панелей, и теперь я пытаюсь добавить их в форму для создания прототипа макета. Я планирую определить количество панелей, которые будут отображаться во время выполнения (чтобы 16: 9, 4: 3, 16:10 и т. Д. Могли сделать заставку хорошо выглядящей), но единственные способы, которые я нашел при поиске В Интернете для добавления элементов в форму используются инструменты дизайна Visual Studio. Поэтому у меня есть несколько вопросов:

Как настроить макет формы в чем-то похожем на Java GridLayout?

Какой код необходим для добавления элементов в форму?

Что лучше для меня - использовать вместо формы?

Ответы [ 3 ]

5 голосов
/ 22 февраля 2012

Вы можете добавлять панели в форму во время выполнения так же, как это делает дизайнер - создайте Panel и добавьте ее в форму (через this.Controls.Add(thePanel);).

Самый простой способ увидеть соответствующий кодэто добавить панель к форме с помощью дизайнера, а затем открыть файл «YourForm.designer.cs».Дизайнер просто генерирует необходимый код для вас - но вы можете увидеть точный код, необходимый для дублирования того, что будет создавать дизайнер.

Что касается макета, я бы порекомендовал посмотреть Layout Techniques для WindowsРазработчики форм видео.Это может дать вам хорошие подсказки относительно различных вариантов макета.Нет ничего лучше Java GridLayout, хотя есть некоторые проекты с открытым исходным кодом, которые пытаются дублировать эту функциональность .

3 голосов
/ 22 февраля 2012

Вам определенно нужно создать приложение формы, чтобы заставить это работать.Кроме того, каждый элемент управления, который вы видите в конструкторе, может быть добавлен программно.

У вас может быть метод, который запускает новые панели по мере необходимости ....

Вот код, который создаст новую панель:

 Panel panel1 = new Panel(); 

Как только этообъявлен, вы можете получить доступ ко всем свойствам.

Чтобы добавить панель в форму, вы должны сделать что-то вроде этого ...

 myform.controls.add(panel1); 

Итак, зная это, вы можете создать метод, который будет форматировать панель и возвращать или добавлятьэто в форме ....

0 голосов
/ 22 февраля 2012

Вы захотите использовать TableLayoutPanel или что-то в этом роде.Затем вы можете использовать свойство Controls для добавления панелей к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...