从列表视图的选定项目添加项目到列表框c#

时间:2012-10-04 20:16:03

标签: c# winforms listview

我正在尝试从WinForms2的listview的选定项目中添加WinForm1列表框中的项目,但这些项目未添加到列表框中。

下面是我正在使用的代码

WinForm1:

    public void setsrc( ListViewItem src )
    {
        Listbox1.Items.Add(src.Text);
    }

Winform2:

    WinForm1 fMain = new WinForm1();
    private void AddItemsButton_Click(object sender, EventArgs e)
    {

        foreach (ListViewItem src in listView1.CheckedItems)
        {
            fMain.setsrc(src);
        }
    }

我在form2中尝试了以下代码

    WinForm1 fMain = new WinForm1();
    private void AddItemsButton_Click(object sender, EventArgs e)
    {

        foreach (ListViewItem src in listView1.CheckedItems)
        {
            fMain.Listbox1.Items.Add(src.Text); //The modifier is set to internal of Listbox1
        }
    }

我尝试通过应用断点进行检查。奇怪的是,这两个条件都有价值但它没有列在listbox1中。有一些类似Form1的控件没有得到更新。

请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

问题是您在Form2中声明了WinForm的新实例。当然你什么都看不到。创建Form2对象时,需要创建对WinForm1的引用。

您可以通过构造函数

执行此操作
class Form2
{
    private WinForm1 form;
    public Form2(WinForm1 form)
    {
       this.form = form;
    }
}

然后,当您创建WinForm1时,Form2中的某个位置。

Form2 form = new Form2(this);
form.Show();

请为您的对象使用有意义的名称。