我正在尝试在C#中设置一个列表,我想要它,这样当我按下一个添加按钮时,它将打开一个窗口,其中包含我可以输入数据按钮和确定按钮的字段,然后将这些文本框字段转移进入清单。这是弹出窗体的代码。
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得到了认可。我已经找到了关于这个大纲的信息,但由于我是编程新手,所以我不能真正做出它的尾巴。
答案 0 :(得分:2)
在调用ShowDialog方法之前,在构造函数中或通过赋值将mainform实例传递给辅助表单(addtoLibraryDialog)。
只需在设计器中更新listview1的“Modifiers”属性:将其设置为“internal”。然后,您将能够以辅助(addtoLibraryDialog)形式访问mainform.listview1。
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);
}
}
在MainForm中:
addtoLibraryDialog dlg=new addtoLibraryDialog() ;
dlg.mainform = this ;
dlg.ShowDialog() ;
答案 1 :(得分:2)
添加构造函数:
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();
答案 2 :(得分:1)
我首选的方法是在我的程序中设置一个名为Global的新类文件,并将需要多表单访问的任何内容放入其中。因此,您只需在全局文件中创建一个公共列表,并在项目的任何位置访问它
答案 3 :(得分:1)
最好的方法是在表单中将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();
}
}