C# 如何将列表框项从一个表单传递到另一个表单
我想知道如何将列表框项目从Form1传递到Form2中的列表框 假设我有两个列表框,一个在form1中,另一个在form2中,还有一个名为button1的按钮调用form2C# 如何将列表框项从一个表单传递到另一个表单,c#,forms,C#,Forms,我想知道如何将列表框项目从Form1传递到Form2中的列表框 假设我有两个列表框,一个在form1中,另一个在form2中,还有一个名为button1的按钮调用form2 private void button1_Click(object sender, EventArgs e) { Form2 f = new Form2(x); f.Show(); } 其中x是传递给form2的xmpp连接 form2构造函数类 private Xm
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的listbox中传递。只需在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) ;}
}
表格1
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
您可以使用mediator类,该类可以设置form1中的数据,您将在第二个表单中获得它,例如refform1.cs:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
Form2.cs:
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(listbox1.Items);
f.Show();
}
在Form2
的参数化构造函数中传递ListBox.ObjectCollection
,并将其作为数据源分配给Form2上的ListBox
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
}
在第二种形式中,创建如下构造函数:
private XmppClientConnection brian;
public Form2(XmppClientConnect x, ListBox.ObjectCollection objectCollection){
InitializeComponent();
this.brian = x;
this.listBox1.Items.AddRange(objectCollection)
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(x, ListBox1.items);
f.Show();
}
在点击按钮事件中,您可以按照K.B的建议执行以下操作:
private XmppClientConnection brian;
public Form2(XmppClientConnect x, ListBox.ObjectCollection objectCollection){
InitializeComponent();
this.brian = x;
this.listBox1.Items.AddRange(objectCollection)
}
private void button1_Click(object sender, EventArgs e)
{
Form2 f = new Form2(x, ListBox1.items);
f.Show();
}
XMPP连接是您的连接类。我不知道它现在是如何调用的。如何在其他列表框中获取数据?我已经在传递一个名为x的xmpp连接数据。//private void button3_Click(object sender,EventArgs e){Form2 f=new Form2(x);f.Show();}如何同时发送x和列表框?然后向构造函数添加另一个参数。我将编辑Form2.cs属性或索引器System.Windows.Forms.ListBox.Items中的answerError 1无法分配到--它是Form1.cs的System.Windows.Forms.ListBox中的只读错误。它不包含“Items”的定义,并且找不到接受类型为“System.Windows.Forms.ListBox”的第一个参数的扩展方法“Items”请显示表单2中的构造函数?然后我可以给你正确的构造函数;public Form2(XmppClientConnection x){InitializeComponent();brian=x;}我已经用您的XmppClientConnection编辑了我的答案。