2012-01-31 119 views
0

txt文件在我的richtextbox中,并且想要保存原始文件而不是保存新文件(另存为)。这里是我保存文件代码如何在富文本框中保存打开的文件

private void SaveMyFile_Click(object sender, EventArgs e) 
    { 

     SaveFileDialog saveFile1 = new SaveFileDialog(); 
     saveFile1.DefaultExt = "*.rtf"; 
     saveFile1.Filter = "RTF Files|*.rtf";   
     if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
     saveFile1.FileName.Length > 0) 
     { 
      richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText); 
     } 

    } 

任何帮助pleaseeee

+1

请出示你在那里打开该文件中的代码... – Yahia 2012-01-31 17:07:11

回答

0

你应该尝试添加从富文本从加载的文件名或FileInfo的。如果文件尚未保存,请提示保存文件。否则,保存到缓存的文件信息。

partial class YourForm : Form 
{ 
    string filePath; 

    private void SaveMyFile_Click(object sender, EventArgs e) 
    { 
     if (string.IsNullOrEmpty(filePath)) 
     { 
      SaveFileDialog saveFile1 = new SaveFileDialog(); 
      saveFile1.DefaultExt = "*.rtf"; 
      saveFile1.Filter = "RTF Files|*.rtf";   
      if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
       saveFile1.FileName.Length > 0) 
      { 
       filePath = saveFile1.FileName; 
      } 
      else return; 
     } 

     try 
     { 
      richTextBox1.SaveFile(filePath, RichTextBoxStreamType.PlainText); 
     } 
     catch (Exception ee) 
     { 
      // Put exception handling code here 
     } 
    } 
} 

按照下面的评论,如果你想要一个另存为按钮,你可以尝试以下方法:

partial class YourForm : Form 
{ 
    Button saveFileAsButton; // Add this using the Forms Designer 

    private void saveFileAsButton_Click(object sender, EventArgs e) 
    { 
     SaveFileDialog saveFile1 = new SaveFileDialog(); 
     saveFile1.DefaultExt = "*.rtf"; 
     saveFile1.Filter = "RTF Files|*.rtf";   
     if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
      saveFile1.FileName.Length > 0) 
     { 
      try 
      { 
       richTextBox1.SaveFile(saveFile1.FileName, RichTextBoxStreamType.PlainText); 
       filePath = saveFile1.FileName; 
      } 
      catch (Exception ee) 
      { 
       // Put exception handling code here (e.g. error saying file cannot be saved) 
      } 
     } 
    } 
} 

filePath的设置是如何在try块。如果保存失败,则不希望丢失原始文件路径。

如果您的表格有MenuStrip,我建议将保存功能移到菜单中。

(顺便说一句,在你的过滤器RTF类型名称将是为“Rich Text Document”更好。)

+0

非常感谢你的工作很好,谢谢 – tristin 2012-02-01 12:55:27

0

你是说,你应该不希望出现的对话框?如果是的话,只需保存的文件名和保存使用:

当您打开文件
richTextBox1.SaveFile(_filename, RichTextBoxStreamType.PlainText); 
0

只需保存文件路径..然后失去所有的东西SaveFileDialog,只是调用richTextBox1.SaveFile(the_path_you_saved_when_you_opened_the_file);

0

只需将原始路径保存到读入文本框的文件即可。当用户点击该按钮保存,使用下面的代码:凡filename是变量,你存储在文件中的原始路径

richTextBox1.SaveFile(filename, RichTextBoxStreamType.PlainText);

打开。

0

这是它听起来像你想要的代码:

String fileLocation; 
private void SaveMyFile_Click(object sender, EventArgs e) 
{ 
    var performSave = true; 
    if(String.IsNullOrEmpty(fileLocation)) 
    { 
     performSave = SetFileLocation(); 
    } 
    if(performSave) 
     richTextBox1.SaveFile(fileLocation, RichTextBoxStreamType.PlainText); 

} 

private bool SetFileLocation() 
{ 
     SaveFileDialog saveFile1 = new SaveFileDialog(); 
     saveFile1.DefaultExt = "*.rtf"; 
     saveFile1.Filter = "RTF Files|*.rtf";   
     if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK && 
     saveFile1.FileName.Length > 0) 
     { 
      fileLocation = saveFile1.FileName; 
      return true; 
     } 
     return false; 
} 
+0

感谢所有的答复,我会通过尝试1 1,看看有什么作用,但我是一个真正的新手哈哈我刚刚试过这一个^^^^,并得到了调试错误(“路径不能为空 参数名称:路径) – tristin 2012-01-31 17:25:28

+0

我已更新代码来处理与取消或空白字符串 – 2012-01-31 17:40:30

+0

谢谢贾斯汀你还可以提供详细信息保存为一个txt文件,也请更好地创建一个保存按钮和保存为按钮,因为我想保存我写的新文件但如果我打开它,有选择来改正原来的。 – tristin 2012-02-01 10:11:29