Как получить доступ к значению элемента управления, который находится на панели? - PullRequest
1 голос
/ 26 февраля 2012

У меня есть элемент управления DropDownList на панели, и эта панель, в свою очередь, помещена в SplitContainer panel1.Я изменил свойство модификаторов на «Public» для DropDownList, но не могу получить доступ к этому элементу управления из другого класса.

//created instance of the form
Payment pForm = new Payment();

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

string amount = pForm.tbAmount.Text;

Но я не могу получить доступ к элементу раскрывающегося списка.

1 Ответ

4 голосов
/ 26 февраля 2012

Разделенный контейнер имеет 2 панели, и каждая панель имеет набор элементов управления, поэтому:

ComboBox dropdown = pForm
    .SplitContainer1       // get the splitcontainer control of pForm
    .Panel1                // get the first panel of this container
    .Controls              // get the controls collection
    .OfType<ComboBox>()    // find all controls that are of type ComboBox
    .FirstOrDefault();     // get the first or null if none

Очевидно, чтобы иметь возможность доступа к pForm.SplitContainer1 извне класса Paymentвам нужно будет предоставить для него публичный метод получения.

И если вы хотите дополнительно ограничиться именем раскрывающегося списка (при условии, что на этой панели было несколько раскрывающихся списков): \

ComboBox dropdown = pForm.
    .SplitContainer1
    .Panel1
    .Controls
    .OfType<ComboBox>()
    .FirstOrDefault(x => x.Name == "comboBox1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...