在form2上的文本框上传递列表框项值

本文关键字:列表 文本 form2 | 更新日期: 2023-09-27 18:26:47

我有两种形式。在表格1上,我有一个按钮和一个文本框(打开表格2的按钮和从表格2中获取列表框所选项目的值的文本框)。在表格2中,我只有一个列表框。我只是想,当点击表单1上的按钮(用于打开表单2)时,表单2打开,并从表单2上的列表框中选择列表框中的项目来填写表单1的文本框。

在form2上的文本框上传递列表框项值

您可以使用委托来完成此操作。下面是一个简单的示例

关于Form 1

private void Button1_Click(System.Object sender, System.EventArgs e)
{
    using (Form2 frm = new Form2(UpdateTextBoxValue)) {
        frm.ShowDialog();
    }
}
public void UpdateTextBoxValue(string value)
{
    TextBox1.Text = value;
}

关于Form 2

public delegate void UpdateTextBoxValue(string value);
private UpdateTextBoxValue _updateTextBoxValue;
public New(UpdateTextBoxValue updateTextBoxValue)
{
    InitializeComponent();
    _updateTextBoxValue = updateTextBoxValue;
}
private void ListBox1_SelectedIndexChanged(System.Object sender, System.EventArgs e)
{
    _updateTextBoxValue.Invoke(ListBox1.SelectedItem.ToString);
}

您可以使用委托事件机制。在form2中实现一个委托和相应的事件,并在您希望将值更新回form1时调用此事件。每当初始化form2并打开它时,调用此委托并在form1上附加一个处理程序。这样,您将成为form1上列表框值的处理程序,并可以在form1 上设置文本框