使用 C# 中另一个窗体中的文本框值在组合框中添加项

本文关键字:添加 组合 文本 另一个 窗体 使用 | 更新日期: 2023-09-27 18:24:57

我有 2 个窗口窗体,Form1Form2Form1有一个ComboBoxForm2有一个Textbox和一个Button

我希望你能帮我解决这个问题。我想发生的是,如果我在Form2TextBox中输入一个字符串值并点击也位于我的Form2中的Button1,则该TextBox的值将是位于我的Form1中的ComboBox项目。

我只想问一下,我们有什么办法可以做到这一点吗?你能为我举个例子吗?我期待着你的帮助。

使用 C# 中另一个窗体中的文本框值在组合框中添加项

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

首先,我假设您已经实例化并显示了这两个表单。接下来,您需要在解决方案资源管理器中找到设计器.cs (formNameHere.Designer.cs( 文件,然后找到组合框的变量声明(应靠近底部(。将其访问修饰符从"私有"更改为更合适的修饰符。

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

form2.comboBox1.Items.Add(textBox1.Text);

。其中,"form2"、"comboBox1"和"textBox1"是要从中发送新组合框项的子窗体、组合框和文本框。

如果您有任何其他问题,请告诉我。

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

在窗体 2 中:

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

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