在C#中,表单(Form)是Windows应用程序的基本构建块之一。列表框(ListBox)是一种常见的用户界面控件,用于显示项目列表供用户选择。当需要在多个表单之间进行交互,特别是涉及到列表框时,通常需要考虑表单间的通信机制。
表单间的交互可以通过以下几种类型实现:
原因分析:
解决方法:
Form2 form2 = new Form2();
form2.Show();
private void UpdateListBox(string item)
{
if (listBox1.InvokeRequired)
{
listBox1.Invoke(new MethodInvoker(delegate { listBox1.Items.Add(item); }));
}
else
{
listBox1.Items.Add(item);
}
}
假设有两个表单:Form1
和Form2
,Form1
中有一个按钮和一个列表框,点击按钮时会在Form2
的列表框中添加一个项目。
Form1.cs:
public partial class Form1 : Form
{
private Form2 form2;
public Form1()
{
InitializeComponent();
form2 = new Form2();
}
private void button1_Click(object sender, EventArgs e)
{
form2.UpdateListBox("New Item");
}
}
Form2.cs:
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void UpdateListBox(string item)
{
if (listBox1.InvokeRequired)
{
listBox1.Invoke(new MethodInvoker(delegate { listBox1.Items.Add(item); }));
}
else
{
listBox1.Items.Add(item);
}
}
}
通过上述方法,可以实现C#中不同表单间的列表框交互。
领取专属 10元无门槛券
手把手带您无忧上云