public partial class Form1 : Form
{
SaveFileDialog sfd = new SaveFileDialog();
OpenFileDialog ofd = new OpenFileDialog();
public string contents = string.Empty;
public Form1()
{
InitializeComponent();
this.Text = "Untitled";
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
if (richTextBox1.Text != contents)
{
DialogResult dr = MessageBox.Show("Do You want to save the changes made to " + this.Text, "Save", MessageBoxButtons.YesNoCancel);
if (dr == DialogResult.Yes)
{
sfd.Title = "Save";
if (SaveFile() == 0)
return;
else
{
richTextBox1.Text = "";
this.Text = "Untitled";
}
contents = "";
}
else if (dr == DialogResult.No)
{
richTextBox1.Text = "";
this.Text = "Untitled";
contents = "";
}
else
{
richTextBox1.Focus();
}
}
else
{
this.Text = "Untitled";
richTextBox1.Text = "";
contents = "";
}
}
private int SaveFile()
{
sfd.Filter = "Text Documents|*.txt";
sfd.DefaultExt = "txt";
if (sfd.ShowDialog() == DialogResult.Cancel)
{
richTextBox1.Focus();
return 0;
}
else
{
contents = richTextBox1.Text;
if (this.Text == "Untitled")
richTextBox1.SaveFile(sfd.FileName,RichTextBoxStreamType.PlainText);
else
{
sfd.FileName = this.Text;
richTextBox1.SaveFile(sfd.FileName,RichTextBoxStreamType.PlainText);
}
this.Text = sfd.FileName;
return 1;
}
}
private void OpenFile()
{
ofd.Filter = "Text Documents|*.txt";
if (ofd.ShowDialog() == DialogResult.Cancel)
richTextBox1.Focus();
else
{
richTextBox1.LoadFile(ofd.FileName, RichTextBoxStreamType.PlainText);
this.Text = ofd.FileName;
contents = richTextBox1.Text;
}
}
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
if (richTextBox1.Text != contents)
{
DialogResult dr = MessageBox.Show("Do You want to save the changes made to " + this.Text, "Save", MessageBoxButtons.YesNoCancel);
if (dr == DialogResult.Yes)
{
SaveFile();
OpenFile();
}
else if (dr == DialogResult.No)
{
OpenFile();
}
else
{
richTextBox1.Focus();
}
}
else
OpenFile();
}
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFile();
}
private void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
{
sfd.Filter = "Text Documents|*.txt";
sfd.DefaultExt = "txt";
if (sfd.ShowDialog() == DialogResult.Cancel)
{
richTextBox1.Focus();
}
else
{
contents = richTextBox1.Text;
richTextBox1.SaveFile(sfd.FileName, RichTextBoxStreamType.PlainText);
this.Text = sfd.FileName;
}
}
當我們打開Windows記事本應用程序,然後打開文件,更改它的內容並保存它,它只需保存而不打開保存文件對話框。但在保存文件對話框上方創建的記事本程序中,在更改保存文件的內容後單擊「保存」打開。儘管保存文件對話框中出現相同的文件名,但在單擊「保存」時會顯示一條消息:「相同的文件名已存在,是否要替換它?」。這就是我想要刪除的內容,並將更改的內容直接保存到打開的文件中,而無需打開保存文件對話框。在C#中的記事本程序中保存文件的正常運行
對不起,但它並沒有解決我的問題..我想要的是,已打開的文件中更改的內容將保存到該文件,而不必打開'保存文件對話框'點擊'保存'按鈕.. – ash
但是,謝謝爲streamwriter的想法..我明白了這一點,並使工作正確.. – ash