Динамическое добавление массива управления в winform - PullRequest
5 голосов
/ 21 февраля 2012

У меня есть вопрос, я хочу динамически добавить массив элементов управления в форму окна, я подготовил код, подобный следующему, но вопрос заключается только в том, что первые показанные элементы управления в форме остаются в коллекции элементов управления, но не показано на форме. Чего не хватает в коде?

Код:

LinkLabel[] arrLbl = new LinkLabel[5];

for (int i = 0; i < 5; i++)
{
   LinkLabel lbl = new LinkLabel();
   lbl.Text = "Label: " + i.ToString();
   arrLbl[i] = lbl;
}

foreach (Control c in arrLbl)
  this.Controls.Add(c);

Ответы [ 2 ]

15 голосов
/ 21 февраля 2012

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

Я не знаю, к какому типу контейнерных элементов управления вы добавляете их, но рассмотрите возможность добавления их в FlowLayoutPanel, который будет автоматически обрабатывать дочерние элементы управления.

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

Если вы не хотите использовать FlowLayoutPanel (или другой интеллектуальный контейнерный элемент управления), вам придется вручную установить свойство Location каждого из ваших дочерних элементов управления.

1 голос
/ 21 февраля 2012

Вы должны установить свойство Location каждого элемента управления. Они все отображаются друг на друга.

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