【问题标题】:Add items to listbox from listview's selected items c#从列表视图的选定项目c#将项目添加到列表框
【发布时间】:2012-10-04 20:16:02
【问题描述】:

我正在尝试从 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 的控件没有更新。

请帮帮我。

【问题讨论】:

  • 你是如何以及在哪里声明fMain

标签: c# winforms listview


【解决方案1】:

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

您可以通过构造函数来做到这一点

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

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

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

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

【讨论】:

  • 当然我会照顾它,并感谢布莱恩。效果很好。
猜你喜欢
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 1970-01-01
相关资源
最近更新 更多