从另一个表单修改列表
本文关键字:列表 修改 表单 另一个 | 更新日期: 2023-09-27 18:06:12
我试图在c#中建立一个列表,我想要它,当我按下一个添加按钮时,它会打开一个窗口,在那里我可以输入数据按和ok按钮,然后有这些文本框字段转移到列表中。这是我的代码的弹出式表单。
public partial class addtoLibraryDialog : Form
{
public addtoLibraryDialog()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
ListViewItem list = new ListViewItem("name");
list.SubItems.Add("path");
listView1.Items.Add(list);
}
}
我想知道我如何才能使它这样listview1被识别。我在这个大纲上找到了一些信息,但由于我是编程新手,所以我不能真正理解它们。
在调用ShowDialog方法之前,通过构造函数或赋值将主表单实例传递给辅助表单(addtoLibraryDialog)。
在设计器中更新listview1的"Modifiers"属性:将其设置为"internal"。然后您就可以访问主机了。listview1 in secondary (addtoLibraryDialog) form.
public partial class addtoLibraryDialog : Form
{
internal MainForm mainfom ; // Change "MainForm" by real form name
public addtoLibraryDialog()
{
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
ListViewItem list = new ListViewItem("name");
list.SubItems.Add("path");
mainfom.listView1.Items.Add(list);
}
}
addtoLibraryDialog dlg=new addtoLibraryDialog() ;
dlg.mainform = this ;
dlg.ShowDialog() ;
添加构造函数:
public partial class addtoLibraryDialog : Form
{
ListView objLV;
public addtoLibraryDialog()
{
InitializeComponent();
}
public addtoLibraryDialog(ref ListView lv)
{
objLV = lv;
InitializeComponent();
}
private void btnOK_Click(object sender, EventArgs e)
{
ListViewItem list = new ListViewItem("name");
list.SubItems.Add("path");
objLV.Items.Add(list);
}
}
从你的主表单调用它:
ListView myList = new ListView();
...
addtoLibraryDialog dlg=new addtoLibraryDialog(ref myList);
dlg.ShowDialog();
我的首选方法是在我的程序中建立一个名为Global的新类文件,并将任何需要像这样的多形式访问的东西放入其中。所以你只需在全局文件中创建一个公共列表,并在项目的任何地方访问它
要做到这一点,最好的方法是发送ListView作为构造函数依赖在您的表单创建一个新的构造函数:
public partial addtoLibraryDialog : Form
{
private readonly ListView _listViewItem;
public addtoLibraryDialog(ListView listViewItem)
{
InitializeComponent();
this._listViewItem = listViewItem;
}
private void btnOK_Click(object sender, EventArgs e)
{
list = new ListViewItem("name");
list.SubItems.Add("path");
this._listViewItem.Items.Add(list);
}
}
public class MyClass
{
public void Main()
{
addtoLibraryDialog popupForm = new addtoLibraryDialog(this.ListViewItem1);
addtoLibraryDialog.ShowDialog();
}
}