2012-03-06 61 views
2

我有關閉saveFileDialog的問題。當我點擊'取消'窗口再次出現。這裏是我的代碼:關閉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(); 
    } 

回答

6

你打電話saveFileDialog1.ShowDialog()兩次,一次顯示它,一旦得到結果。你只需要調用一次。刪除單獨一行,saveFileDialog1.ShowDialog();本身,您已經在if條件中執行該操作。

編輯:您還需要將else塊中的所有FileStream操作移動到其中,以便在刪除該行後正常工作。這裏是我的編輯後的版本:

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)

+0

您的編輯版本不起作用,仍然有相同的問題 – docxx 2012-03-06 00:56:47

+0

糟糕...抱歉。在我所有的編輯中,我忘了編輯實際上重要的東西。我再次編輯它。現在就試試。 – luksan 2012-03-06 00:59:25

+0

@luksan我正要編輯你的代碼。我看到了錯誤.. :) – abhishek 2012-03-06 01:00:36