简易记事本问题,敬请赐教
1、我在保存时,第一次单击保存是将其保存时出现一个对话框将其保存,但是我继续书写时,再单击保存时,又弹出来一个对话框,并没有保存到原来那个路径,这个问题如何解决?2、我在保存时以保存按钮的checked事件作为是否保存的标志,那么在我第一次单击过保存后,即使我在关闭是不再单击保存也没有提示?应该不能用保存按钮的checked事件作为是否保存的标志吧!
详见1代码:
string strFileName;
SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = @"c:\";
save.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf";
DialogResult dr = save.ShowDialog();
if (dr == DialogResult.OK)
{
strFileName = save.FileName;
string str = Path.GetExtension(strFileName).ToLower();
switch (str)
{
case ".txt":
richTextBox1.SaveFile(strFileName, RichTextBoxStreamType.PlainText);
break;
case ".rtf":
richTextBox1.SaveFile(strFileName, RichTextBoxStreamType.RichText);
break;
}
详见2代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr;
if (保存ToolStripMenuItem.Checked == true) ;
if (保存ToolStripMenuItem.Checked== false)
{
dr = MessageBox.Show("您还没有进行保存,是否现在进行保存?", "询问", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Asterisk);
if (dr == DialogResult.Yes)
{
string strFileName;
SaveFileDialog save = new SaveFileDialog();
save.InitialDirectory = @"c:\";
save.Filter = "文本文件(*.txt)|*.txt|RTF文件(*.rtf)|*.rtf";
DialogResult d = save.ShowDialog();
if (d == DialogResult.OK)
{
strFileName = save.FileName;
string str = Path.GetExtension(strFileName).ToLower();
switch (str)
{
case ".txt":
richTextBox1.SaveFile(strFileName, RichTextBoxStreamType.PlainText);
break;
case ".rtf":
richTextBox1.SaveFile(strFileName, RichTextBoxStreamType.RichText);
break;
}
}
}
if (dr == DialogResult.No)
{
e.Cancel = false;
}
if (dr == DialogResult.Cancel)
{
e.Cancel = true;
}
}
}