我有一个小应用程序,需要在单击按钮时将富文本框的内容保存为文本文件。
//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);
}
}
这似乎是一段非常直接的代码,但我不明白为什么对话框会打开两次。
3条答案
按热度按时间cyej8jka1#
只是将Servy的评论扩展为一个答案,因为我怀疑他的诊断是正确的。我将给予一些诊断/发现问题的简单建议。首先,您可以在事件处理程序中放置一个断点,如果您两次进入事件处理程序,那么这显然就是问题所在。(甚至不运行)是简单地右击方法名并选择“查找所有引用”,这将给予你列出代码中对这个方法的所有引用。方法本身,你希望注册它的地方,以及你没有注册的地方。删除一个,你的问题就会消失。
jtjikinw2#
最短答案:你在代码中调用了两次保存对话框()。2删除第二个对话框,你的问题就会解决。
cig3rfwq3#
因为你被利用了两次。这对你来说是个简单的例子