2012-02-22 4 views
1

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

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

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

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

+0

Я предполагаю, что вы говорите о Windows Forms, но если бы вы сказали нам, тогда мне не нужно было бы предполагать. –

+0

Да, Windows Forms. Извините за любую путаницу. – bionicOnion

ответ

4

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

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

Что касается схемы, я рекомендую посмотреть видео Layout Techniques for Windows Forms Developers. Это может дать вам хорошие подсказки относительно различных вариантов, доступных для макета. Нет ничего похожего на Java GridLayout, хотя есть open source projects that attempt to duplicate this functionality.

0

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

3

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

Вы могли бы иметь метод, который проворачивает новые панели по мере необходимости ....

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

Panel panel1 = new Panel(); 

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

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

myform.controls.add(panel1); 

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

Смежные вопросы