C# 从另一个窗体访问一个窗体的组合框项

标签 c# forms combobox

我有两种形式: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)


我还尝试通过在表单中​​单击它并将私有(private)更改为公共(public)来使组合框公开。这是我更改后的样子。

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{} 事情。并且请向我解释如何以不同的形式公开按钮和其他内容,因为我知道单击它并将私有(private)更改为公共(public)不是我在上面的示例中所做的正确方法。

最佳答案

转到可视化 UI 设计器并在属性中找到修饰符并将其更改为 Public: enter image description here

现在你需要对代码做一点小改动:

var form2 = new Form2();                   
if (variable == "value") {           
 form2.ComboBox1.Items.Add("another item");      
}

this.Hide();          
form2.Show; 

关于C# 从另一个窗体访问一个窗体的组合框项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10679296/

相关文章:

html - content-type 和 enctype 有什么区别

python - "no control matching name"在 python 中的 Mechanize

javascript - 如何触发组合框的 onchange 事件?

c# - 我可以在构造函数运行之前使用对象初始化语法为属性赋值吗?

c# - 从 request.querystring 中删除字符

C# 使用 WMI 从 COMAdmin.COMAdminCatalog 访问数据

javascript - 提交后让表单暂停?

excel - 在 VBA Excel 中对 ComboBox 进行排序

css 位置 jquery ui 组合框

c# - 我如何在 asp.net core 2.2 中实现基于 Cookie 的身份验证和 jwt?