如何将列表框项从一个表单传递到另一个表单
本文关键字:表单 一个 另一个 列表 | 更新日期: 2023-09-27 18:01:23
我想知道如何将列表框项从Form1传递到Form2。
假设我有两个列表框,一个在form1中,另一个在form2中,一个名为button1的按钮调用form2。
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(x);
f.Show();
}
其中x是xmpp连接,我传递给form2。
form2构造函数类
private XmppClientConnection brian;
public Form2(XmppClientConnection x)
{
InitializeComponent();
brian = x;
}
通过使用上面的代码,我可以成功地传递x。
现在,在这个实例中,我希望form1的x和listbox项都传递到form2的listbox中。
在第二个表单中创建一个这样的构造函数:
private XmppClientConnection brian;
public Form2(XmppClientConnect x, ListBox.ObjectCollection objectCollection){
InitializeComponent();
this.brian = x;
this.listBox1.Items.AddRange(objectCollection)
}
在你的按钮点击事件中你可以做K. B建议的这样做:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(x, ListBox1.items);
f.Show();
}
XMPP连接是您的连接类。我不知道现在怎么叫
您可以使用中介类,它可以从form1中设置数据,您将在第二个表单中获得数据,为ref clickhere
在Form2类构造函数中添加一个参数
public partial class Form2 : Form
{
//here I suppose that you have added another listbox on your form2
public Form2(ListBox.ObjectCollection items )
{
InitializeComponent();
listBox1.Items.AddRange(items) ;}
}
Form1
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
Form1.cs:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
Form2.cs :
传递Form2
的参数化构造函数中的ListBox.ObjectCollection
,并将其作为数据源分配给Form2的列表框。
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Form2(ListBox.ObjectCollection objectCollection)
{
InitializeComponent();
this.listBox1.DataSource = objectCollection;
}
}
说明:可以有参数化的构造函数。参数可以在数量上增长。
例如:Form2 f = new Form2(sConnectionString, listbox1.Items);
f.Show();
现在在Form2
中,你必须有一个有两个参数的构造函数,即string
&ListBox.ObjectCollection
.
示例为:
public Form2(string sConnectionString, ListBox.ObjectCollection objectCollection)
{
InitializeComponent();
this.listBox1.DataSource = objectCollection;
//use sConnectionString here
}