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

本文关键字:表单 一个 另一个 列表 | 更新日期: 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
    }