为什么我的保存文件对话框在运行时会打开两次?

时间:2014-01-07 19:29:28

标签: c# winforms save

我有一个小应用程序,需要在单击按钮时将其保存为富文本框的内容作为文本文件。我现在拥有的是

    //save button logic
    private void saveBtn1_Click(object sender, EventArgs e)
    {
        //set up new SaveFileDialog
        SaveFileDialog saveFileDialog1 = new SaveFileDialog();
        saveFileDialog1.Filter = "Text Files (*.txt)|*.txt";
        saveFileDialog1.Title = "Save a text File";

        //prompt the user
        DialogResult result = saveFileDialog1.ShowDialog();

        //if they select save write the contents of the RTB to a text file
        if (result == DialogResult.OK)
        {
            System.IO.File.WriteAllText(saveFileDialog1.FileName, richTextBox1.Text);
        }
    }

这似乎是一段相当简单的代码,但我无法弄清楚为什么对话框会打开两次。

2 个答案:

答案 0 :(得分:4)

将Servy的评论扩展为答案,因为我怀疑他的诊断是正确的。我将给出一些诊断/发现问题的简单建议。首先,你可以在事件处理程序中放置一个断点,如果你被带入该事件处理程序两次,那么这显然是问题所在。另一个解决方案(甚至没有运行)只需右键单击方法名称并选择“查找所有引用”,这将为您提供代码中此方法的所有引用的列表。我猜你会发现3;方法本身,您希望注册它的地方,以及您没有注册的地方。删除一个,你的问题就会消失。

答案 1 :(得分:0)

最短的答案:您在代码中两次调用save dialog()。删除第二个,您的问题将清除。