使用C#中另一个表单的文本框值在ComboBox中添加项目

时间:2015-11-27 14:35:38

标签: c# winforms combobox

我有2个窗体,Form1Form2Form1ComboBoxForm2TextboxButton

我希望你能帮助我解决这个问题。我想要发生的是,如果我在TextBox的{​​{1}}中输入字符串值并点击同样位于我Form2的{​​{1}},则值为Button1将成为Form2中我TextBox的项目。

我想问一下,我们是否有办法做到这一点?你能为我提供一个例子吗?我期待着你的帮助。

2 个答案:

答案 0 :(得分:0)

如果你包含你到目前为止的尝试代码,和/或你遇到的障碍,这会有很大的帮助,但是这是一个简单的问题,有点难以寻找,希望这会有所帮助。

首先,我假设您已实例化并显示两种形式。接下来,您将要在解决方案资源管理器中找到Designer.cs(formNameHere.Designer.cs)文件,然后找到组合框的变量声明(应该在底部附近)。从私人'更改其访问修改器更合适的事情。

现在返回到Form1代码文件并将其添加到按钮单击事件处理程序:

c => c.Consumer.Target.TargetType == typeof(Consumer1)
c => c.Consumer.ServiceType == typeof(Consumer1)

...其中' form2',' comboBox1'和' textBox1'是您的子表单,组合框和文本框,您将从中发送新的组合框项目。

如果您有任何其他问题,请与我们联系。

答案 1 :(得分:-1)

我认为最好的选择是通过events在表单之间进行通信。因此,在按钮单击事件触发事件并从Form1订阅它。引发事件时,将文本添加到组合框

在Form2中:

internal event EventHandler<string> NewItemToAdd;
void button1_clicked(object sender, EventArgs e)
{
    if(NewItemToAdd != null)
        NewItemToAdd(textbox.Text);
}

在Form1中订阅事件NewItemToAdd并在事件发生时将文本添加到组合框中