如何获取另一个表单中的列表框中的项目

时间:2014-05-02 07:02:48

标签: c# listbox

我的项目Form1和Form2中有2个表单

在Form1中初始化时,我必须在Form2中的Listbox1中获取项目。

以下是Form1中的代码:

private void OnRosterItem(object sender, agsXMPP.protocol.iq.roster.RosterItem item)
    {
        if (InvokeRequired)
        {
            BeginInvoke(new XmppClientConnection.RosterHandler(OnRosterItem), new object[] { this, item });
            return;
        }
        if (item.Subscription == SubscriptionType.both)
        {
            for (int i = 0; i < listBox1.Items.Count; i++)
            {
                if (item.Jid.ToString() == listBox1.Items[i].ToString())
                {
                    listBox1.Items.Remove(item.Jid);
                }
            }
            listBox1.Items.Add(item.Jid.ToString());
        }
    }

此Listbox1在Form2中如何获取项目。

谢谢

1 个答案:

答案 0 :(得分:0)

简单方法是制作List并将Form1的内容传递给Form2Parameters,然后使用传递的内容填充Listbox

Form2构造函数中:

public MainWindow(List<string> Values)
{
    InitializeComponent ();
    foreach(var row in Values){
        Listbox1.Items.Add(row);
    }
}

在调用Form1Form2

List<string> Values = new List<string>();
Values.Add("I'm a row!");
Values.Add("So am I!");
var form = new Form2();
form.Show(Values);

Listbox将按照我的示例包含以下项目:

  • 我是一排!
  • 我也是!

如果您想在创建时填充List,可以执行以下操作:

var Values = new List<string> { "I'm a row!", "So am I!" };

这与上面产生的结果相同,只有一行而不是三行。