Используя выбранный индекс поля комбинированного списка в, Если оператор другой формы

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

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, но провал...., что 'сообщество предпочтено' метод для движения о выполнении этого?

1
задан Stev0 6 August 2010 в 07:13
поделиться

2 ответа

Что ж, вы можете просто вернуть свойство 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 ParentForm и при необходимости приведите его к Form1 , например ((Form1) this.ParentForm) .SelectedIndex

1
ответ дан 2 September 2019 в 22:22
поделиться

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

1
ответ дан 2 September 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: