如何将列表框项从一个表单传递到另一个表单

时间:2014-05-02 09:28:46

标签: c# forms

我想知道如何将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的列表框中传递。

4 个答案:

答案 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连接是您的连接类。我现在不知道它是怎么称呼的。