Использование выбранного индекса выпадающего списка в операторе If другой формы - PullRequest
1 голос
/ 06 августа 2010

Я пытаюсь сослаться на выбранный индекс выпадающего списка в моей главной форме в операторе if внутри метода во второй форме.Некоторые поиски в Google немного смутили меня.Самый очевидный ответ, который я вижу, это просто сделать элемент управления списком в общедоступной форме, однако веб-сайты, которые я читал, указывают, что это не предпочтительный метод?Если это так, какой метод предпочтительнее?Я кодировал вторичный метод конструктора во второй форме, чтобы принять первую форму в качестве параметра при вызове, например:

Form2 form = new Form2(this);
form.Show();

И во второй форме:

public partial class Form2 : Form
{
    Form1 form1;
    public Form2()
    {
        InitializeComponent();
    }
    public Form2(Form1 fr1)
    {
        InitializeComponent();
        form1 = new Form1();
        form1 = fr1;

Так что я подумал, что мог бы просто сделать что-то вроде form1.combobox1.SelectedIndex, но без игры в кости .... какой метод «сообщества предпочтителен» для этого?

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Ну, вы можете просто вернуть SelectedIndex свойство комбобокса, выполнив что-то вроде этого в Form1 классе или в любой другой форме, содержащей комбобокс.

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public int SelectedIndex
    {
        get
        {
            return comboBox.SelectedIndex;
        }
    }

}

Затем, чтобы вызвать его,просто продолжайте то, что вы делали до

public partial class Form2 : Form
{
    Form1 form1;
    public Form2()
    {
        InitializeComponent();
    }
    public Form2(Form1 fr1)
    {
        InitializeComponent();
        // get rid of this line it's unnecessary
        // form1 = new Form1();
        form1 = fr1;
    }
}

и вызывайте свойство там, где это необходимо в вашем Form2 классе, например, form1.SelectedIndex.

Избегайте этого раздела, если он запутан, но вам не нужно создавать поле для Form1.Вместо этого используйте Form s ParentForm и приведите его к Form1 при необходимости, например ((Form1)this.ParentForm).SelectedIndex

1 голос
/ 06 августа 2010

В основной форме создайте открытое свойство, которое возвращает поле со списком.

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