我在关闭saveFileDialog时遇到问题。当我单击“取消”时,窗口再次出现。下面是我的代码:
private void SaveAsItem_Click(object sender, EventArgs e)
{
saveFileDialog1.FileName = "untitled";
saveFileDialog1.Filter = "Text (*.txt)|*.txt";
saveFileDialog1.ShowDialog();
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(saveFileDialog1.FileName);
if (saveFileDialog1.ShowDialog()==DialogResult.Cancel)
{
richTextBox1.Text = "CANCEL";
issaved = false;
}
else
{
issaved = true;
SaveFile.WriteLine(richTextBox1.Text);
}
SaveFile.Close();
}发布于 2012-03-06 08:44:18
您将调用saveFileDialog1.ShowDialog()两次,一次用于显示结果,另一次用于获取结果。你只需要调用它一次。删除写着“saveFileDialog1.ShowDialog();本身,您已经在if条件中这样做了”的代码行。
编辑:您还需要将所有FileStream操作移动到else块中,以便在删除该行后使其正常工作。以下是我编辑后的版本:
private void SaveAsItem_Click(object sender, EventArgs e)
{
saveFileDialog1.FileName = "untitled";
saveFileDialog1.Filter = "Text (*.txt)|*.txt";
if (saveFileDialog1.ShowDialog()==DialogResult.Cancel)
{
richTextBox1.Text = "CANCEL";
issaved = false;
}
else
{
System.IO.StreamWriter SaveFile = new System.IO.StreamWriter(saveFileDialog1.FileName);
issaved = true;
SaveFile.WriteLine(richTextBox1.Text);
SaveFile.Close();
}
}您也可以完全跳过FileStream,只执行一个File.WriteAlltext(saveFileDialog1.FileName, richTextBox1.Text)。
https://stackoverflow.com/questions/9576295
复制相似问题