我想知道如何将Form2中的列表框项目传递到Form2中的列表框。
假设我在form1中有两个listbox,在form2中有另一个,以及一个名为button1的按钮,它调用Form2。
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(x);
f.Show();
}
其中x是我传递给form2的xmpp连接。
form2构造函数类
private XmppClientConnection brian;
public Form2(XmppClientConnection x)
{
InitializeComponent();
brian = x;
}
通过使用上面的代码,我可以成功传递x。
现在在这个实例中,我希望form1的x和listbox项目都在form2的列表框中传递。
答案 0 :(得分:0)
只需在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();
}
答案 1 :(得分:0)
您可以使用可以设置来自form1的数据的mediator类,并且您将在第二个表单上获取它,用于ref clickhere
答案 2 :(得分:0)
<强> Form1.cs的强>:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
<强> Form2.cs 强>:
将ListBox.ObjectCollection
传递给Form2
的参数化构造函数,并将其作为数据源分配给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
中你必须拥有2个参数的构造函数string
&amp; ListBox.ObjectCollection
。
示例是:
public Form2(string sConnectionString, ListBox.ObjectCollection objectCollection)
{
InitializeComponent();
this.listBox1.DataSource = objectCollection;
//use sConnectionString here
}
答案 3 :(得分:0)
在你的第二个表单中创建一个这样的构造函数:
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连接是您的连接类。我现在不知道它是怎么称呼的。