0

我正在尝试从 WinForms2 的列表视图的选定项目中添加 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 的控件没有更新。

请帮助我。

4

1 回答 1

1

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

一种方法是通过构造函数

class Form2
{
    private WinForm1 form;
    public Form2(WinForm1 form)
    {
       this.form = form;
    }
}

然后,在WinForm1您创建Form2.

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

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

于 2012-10-04T20:41:30.937 回答