在不同形式的If语句中使用组合框的选定索引

时间:2010-08-06 07:13:52

标签: c# winforms combobox

我正在尝试在第二个表单上的方法内的if语句中引用我的mainform上的组合框的选定索引。一些谷歌搜索让我有点困惑。我能看到的最明显的答案就是将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这样的事情,但是没有骰子......这个“社区首选”方法是做什么的呢?

2 个答案:

答案 0 :(得分:1)

在主窗体上,创建一个返回组合框的公共属性。

答案 1 :(得分:1)

你可以通过在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的{​​{1}}代替ParentForm,只要需要Form1