Найти элемент управления в Windows Forms по имени

Я работаю над приложением, которое добавляет объекты (в основном элементы управления Windows Forms ) во время выполнения из файла XML. Приложению требуется доступ к добавленным объектам.

Объекты добавляются на панели или в групповом ящике. Для панели и группового ящика у меня есть Panel.Controls ["имя_объекта"] для доступа к объектам. Это полезно только тогда, когда объект добавляется непосредственно на ту же панель. В моем случае основная панель [pnlMain, У меня есть доступ только к этой панели] может содержать другую панель, и эта панель [pnlChild] снова содержит групповой ящик [gbPnlChild], а групповой ящик содержит кнопку [button1, я хочу получить доступ к этой кнопке]. У меня есть следующий метод для этого:

Panel childPanel = pnlMain.Controls["pnlChild"];
GroupBox childGP = childPanel.Controls["gbPnlChild"];
Button buttonToAccess = childGP["button1"];

Вышеупомянутый метод полезен, когда родители известны. В моем сценарии известно только имя объекта, к которому нужно получить доступ [button1], а не его родители. Итак, как мне получить доступ к этому объекту по его имени, независимо от его родителя?

Есть ли такой метод, как GetObject ("objName") или что-то подобное?

8
задан Peter Mortensen 28 October 2015 в 12:33
поделиться