Как получить контрольный индекс в WinForms? - PullRequest
3 голосов
/ 17 декабря 2008

У меня есть панель с набором элементов управления. Как я могу получить индекс конкретного элемента управления при итерации по ним? Я использую foreach для итерации, но нет свойства Index. Должен ли я использовать for x = 0... и возвращать x, когда мой матч сделан, или как?

Ответы [ 3 ]

7 голосов
/ 17 декабря 2008

Вы можете использовать:

panel.Controls.IndexOf(control);

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

1 голос
/ 17 декабря 2008

Вы можете просто использовать метод IndexOf. Что-то вроде panel1.Controls.IndexOf (textBox1);

0 голосов
/ 17 декабря 2008

Чтобы ответить на конкретный вопрос, который вы задали, да, я бы использовал

для (x = 0; x

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

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

Надеюсь, это поможет ...

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