Как я могу использовать некоторые элементы управления на форме такой массив их - PullRequest
2 голосов
/ 10 сентября 2011

У меня есть около 20 флажков в форме.Как я могу назвать их, чтобы использовать их позже в цикле for, например?У вещи такой массив checkBox[i].

С уважением

Ответы [ 4 ]

1 голос
/ 10 сентября 2011

Я предполагаю, что элементы управления создаются как часть InitializeComponent(), то есть это делается с помощью кода дизайнера.

Простой подход заключается в том, чтобы сделать это после того, как InitializeComponent называется:

var checkboxes = new[]
{
    checkBox1, // these are the names you have given
    checkBox2, // to the checkboxes in the designer
    checkBox3,
};

Лучше было бы использовать LINQ, чтобы поместить все флажки в массив:

var checkboxes = this.Controls.OfType<CheckBox>().ToArray();

Однако это не будет работать рекурсивно, и вам, возможно, придется отфильтровать некоторые флажки из коллекции, если вы не хотите, чтобы все они были в массиве.

0 голосов
/ 12 сентября 2011
    CheckBox[] MyCheckBoxes = new CheckBox[20];
    for (int i = 0; i < 20; i++)
    {
        MyCheckBoxes[i] = new CheckBox();
        MyCheckBoxes[i].Checked = true;
        //etc
    }
0 голосов
/ 10 сентября 2011

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

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