Поиск элемента по имени в WinForms

643
09 декабря 2016, 08:52

Мне надо на форме именно найти элемент (button, panel и т.д.) по его name (имени переменной). Как это сделать?

Answer 1

Метод Control.ControlCollection.Find - выполняет поиск элементов управления по их свойству Name и создает массив из всех элементов управления, которые соответствуют условиям поиска.

Поиск элементов, совпадающих по имени, будет выглядеть так:

var textBoxes = this.Controls.Find("textBox", true);

Если необходимо просто найти в коллекции элемент по ключу, тут нужно знать ключ (имя элемента), то вот так:

var textBox = this.Controls["textBox1"];

Проверить, содержится ли элемент в контролах можно с помощью метода Control.ControlCollection.ContainsKey. К примеру, взять элемент по ключу будет правильнее, если заранее проверить, содержится ли он в коллекции, код будет выглядеть так:

var name = "textBox1";
if(this.Controls.ContainsKey(name);)
{
    var textBox = this.Controls[name]; // делаем с этим элементом то, что нам нужно
}
READ ALSO
Реализация ввода десятичных цифр

Реализация ввода десятичных цифр

Всем доброго! Народ помогите новичку никак не могу решить вопрос вводы десятичных цифрКак это делать правильно

280
RabbitMQ: вопрос оптимизации очередей

RabbitMQ: вопрос оптимизации очередей

Я новичок в RabbitMQПрочитал статью «Deploying Microservices Architecture with C#, Part 2»

297
Стоит задача оптимизации кода C#

Стоит задача оптимизации кода C#

Столкнулся с проблемой в Windows FormПример: Создано две кнопки Btn1, Btn2 и textBox1

319
Игнорирование child'ов при наведении на panel WinForms

Игнорирование child'ов при наведении на panel WinForms

Вот у нас есть panel, и на ней всякие другие элементы, например labelИ в panel, есть событие MouseHover (оно срабатывает, когда мышь наведена на объект),...

341