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

时间:2014-10-17 05:37:08

标签: c# winforms listbox

我有两种形式。在form1上我有一个按钮和一个文本框(用于打开form2的按钮和用于从form2获取listbox selectd项的值的文本框)。在form2上我只有一个列表框。我只是想要,当单击form1上的按钮(用于打开form2),form2打开并从form2上的列表框中列出所选项目以填写form1上的文本框。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

表格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;
}

表格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);
}