我有两种形式:form1和form 2. comboBox在form2中。我试图将一个项添加到form1的组合框选项列表中。这是我到目前为止所尝试过的。
form1:
var form2 = new Form2();
if (variable == "value") {
form2.Controls["ComboBox1"].Items.Add("another item")
}
this.Hide();
form2.Show;
这个问题是它不允许我选择项目。 (它不允许我输入.Items.Add)
我还尝试通过在表单中单击它并将私有更改为public来使comboBox公开。这就是我改变它时的样子。
public void comboBox1_SelectedIndexChanged(object sender, EventArgs e){
}
但是当我尝试访问comboBox1
时,我得到的就是:
comboBox1_SelectedIndexChanged
form2.comboBox1 //This doesn't work
form2.comboBox1_SelectedIndexChanged //This is the only option available
我可能犯了很多错误,但这是因为我对此不熟悉。我刚刚开始学习,如果你可以请尝试解释一下这会有所帮助。如果可能,请避免使用get {} set {}内容。并且请向我解释如何将按钮和其他东西以不同的形式公开,因为我知道点击它并将私有更改为公共是不正确的方式,就像我在上面的示例中所做的那样。
答案 0 :(得分:3)
转到可视UI设计器并在属性中查找修改器并将其更改为Public:
现在您需要对代码进行一些小改动:
var form2 = new Form2();
if (variable == "value") {
form2.ComboBox1.Items.Add("another item");
}
this.Hide();
form2.Show;
答案 1 :(得分:1)
您应该在Form2上编写一个公共方法,将项目添加到组合框中。
public class Form2 : Form {
...
public void AddItem(object item) {
comboBox1.Items.Add(item);
}
...
}
这样,你只需在Form1上调用该方法。
form2.AddItem(variable);
答案 2 :(得分:0)
最好使用事件处理程序来执行此操作,在调用此事件处理程序时,使用相应的方法在表单1中注册事件处理程序。然后在form2中调用此事件处理程序。该方法将负责将项目添加到组合框。