2012-03-06 3 views
2

saveFileDialog를 닫는 데 문제가 있습니다. 클릭하면 '취소'창이 다시 나타납니다. 당신은 두 번 saveFileDialog1.ShowDialog()를 호출하고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

, 한 번 보여 한 번 결과를 얻을 : 여기 내 코드입니다. 한 번만 호출하면됩니다. 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