C#OpenFileDialog开放两次

时间:2015-03-24 11:02:54

标签: c#

我遇到了使用C#编写的Visual Studio中编写的Windows窗体的问题,作为Web开发课程的一部分。当我点击菜单项('导入')时,文件对话框会打开两次。

第一个对话似乎不正确,因为它没有应用过滤器或标题。然后立即打开的第二个对话框应用了正确的过滤器和标题。

显然,只打开一次才能让我读取所选文件并将其添加到列表框中。这是有效的,但只有在我选择了两次文件后才能使用。

提前感谢您的帮助。

private void importToolStripMenuItem_Click(object sender, EventArgs e)
    {
        openFileDialog1.ShowDialog();

        openFileDialog1.Filter = "Text|*.txt";
        openFileDialog1.Title = "Choose a file to import";

        if (openFileDialog1.ShowDialog() == DialogResult.Cancel)
        {
            MessageBox.Show("Oh. No file selected!");
        }

        else
        {
            string usersFile = openFileDialog1.FileName;

            string[] lines = File.ReadAllLines(usersFile);

            foreach (string line in lines)
            {
                groceryList.Items.Add(line);
            }
        }

1 个答案:

答案 0 :(得分:6)

启动您的代码

private void importToolStripMenuItem_Click(object sender, EventArgs e)
{
    openFileDialog1.ShowDialog();

这是不必要的,ShowDialog将显示一个对话框,其中过滤器未正确设置,因为您的下一行有:

openFileDialog1.Filter = "Text|*.txt";
openFileDialog1.Title = "Choose a file to import";

然后再次ShowDialog。

因此,只需删除第一个

 openFileDialog1.ShowDialog();

你应该没事。