我正在尝试在第二个表单上的方法内的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这样的事情,但是没有骰子......这个“社区首选”方法是做什么的呢?
答案 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