2012-03-06 14 views
2

saveFileDialogを閉じる際に問題があります。 「キャンセル」をクリックすると、もう一度ウィンドウが表示されます。ここに私のコードは次のとおりです。save 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

あなたはそれを表示するために、一度、結果を得るために1回、2回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(); 
    } 
} 

あなたはまた、単にFile.WriteAlltext(saveFileDialog1.FileName, richTextBox1.Text)を行う完全FileStreamをスキップすることができます:ここに私の編集したバージョンです。

+0

編集したバージョンは機能しませんが、まだ同じ問題があります – docxx

+0

おっと...申し訳ありません。私の編集では、実際に重要なことを編集するのを忘れてしまった。私は再びそれを編集した。やってみよう。 – luksan

+0

@luksan私はあなたのコードを編集しようとしていました。私は間違いを見た.. :) – abhishek