我有一个小应用程序,需要在单击按钮时将其保存为富文本框的内容作为文本文件。我现在拥有的是
//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);
}
}
这似乎是一段相当简单的代码,但我无法弄清楚为什么对话框会打开两次。
答案 0 :(得分:4)
将Servy的评论扩展为答案,因为我怀疑他的诊断是正确的。我将给出一些诊断/发现问题的简单建议。首先,你可以在事件处理程序中放置一个断点,如果你被带入该事件处理程序两次,那么这显然是问题所在。另一个解决方案(甚至没有运行)只需右键单击方法名称并选择“查找所有引用”,这将为您提供代码中此方法的所有引用的列表。我猜你会发现3;方法本身,您希望注册它的地方,以及您没有注册的地方。删除一个,你的问题就会消失。
答案 1 :(得分:0)
最短的答案:您在代码中两次调用save dialog()。删除第二个,您的问题将清除。