2012-01-31 115 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