我正在尝试从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的控件没有得到更新。
请帮我解决这个问题。
答案 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();
请为您的对象使用有意义的名称。