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