我有一个C#中的软件,它有一个主窗体(意思是当你启动几乎每个软件都有的软件时打开的窗体)。但是,主窗体会打开一个名为ProjectFiles
的表单。我想知道是否可以从主窗体向listView
中的ProjectFiles
添加文件。我试过在互联网上搜索如何做到这一点,但每个人都在问如何以不同的方式做到这一点。我也试过没有帮助这样做,所以这里是我的代码,但问题是当我使用这段代码时,软件将停止响应。
主要形式:
public string[] lines { get; set; }
void projectFilesToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (this.parentForm == null)
{
return;
}
if(opfd.ShowDialog()==DialogResult.OK)
{
string[]lines = File.ReadAllLines(opfd.FileName);
}
}
ProjectFiles:
void label1_Click(object sender, EventArgs e)
{
MainForm mf = new MainForm();
{
string[] lines = File.ReadAllLines(mf.lines.ToString());
foreach (string line in lines)
{
listView1.Items.Add(line);
}
}
}
非常感谢任何帮助。谢谢!
编辑: 我被要求更准确地发布错误的内容。就像我上面说的那样,软件变得灰暗,一个消息框显示它已经停止响应。如果这还不够清楚,请告诉我。
编辑:我已经尝试了以下asnwers但软件仍然继续做同样的事情。对软件来说似乎太过分了。
答案 0 :(得分:-1)
首先,当您调用ShowDialog()来显示表单时,在该表单关闭之前,该语句之后的任何代码都不会执行。请参阅this
的备注部分因此,在您的案例中,不能将文件添加到ProjectFiles的列表视图中(ShowDialog)
但如果你需要这样做;
将指向ProjectFiles表单的指针保留为MainForm
中的成员变量ProjectFiles theProjectFiles = new ProjectFiles();
使用.Show()代替.ShowDialog()
显示ProjectFiles表单theProjectFiles.Show();
像往常一样使用ProjectFiles表单中的listView1:
theProjectFiles.listView1.Add(...);