2013-12-19 59 views
1

我想让WTF应用程序被用户点击“X”按钮来制作保存文件,现在可以通过Message.Show完成或直接询问保存。我已经创建了一个代码,但是当用户点击保存或取消时,错误窗口显示该程序开始工作,并且它想要将信息发送给Microsoft。点击“X”按钮保存文件

private void Window_Closing(object sender, CancelEventArgs e) 
{ 
    Microsoft.Win32.SaveFileDialog saveDlg = new Microsoft.Win32.SaveFileDialog(); 
    saveDlg.DefaultExt = ".rtf"; 
    saveDlg.Filter = "RTF Documents (.rtf)|*rtf"; 

    Nullable<bool> rezultat = saveDlg.ShowDialog(); 
    if (rezultat == true) 
    { 
     string filename = saveDlg.FileName; 
     System.IO.File.Create(filename); 
    } 
    { 
     this.Close(); 
    } 
} 
+0

制作'WTF'应用听起来像一个混乱和乖戾的努力。 – Brian

+1

Close()本身触发关闭事件我相信。这可能是它崩溃的原因。 –

回答

6

我认为你可能已经打算在那里是else

else 
{ 
    this.Close(); 
} 

其次,调用this.Close();Window_Closing事件中只是要求一个堆栈溢出异常。

您不需要再关闭窗口。它已经关闭了。

+0

谢谢,萨姆我,你是对的。当我拿出这个.Close();我没有收到更多的错误消息。 – Ronin

1

修改与你的代码正确else语句,你如果条件

private void Window_Closing(object sender, CancelEventArgs e) 
    { 
     Microsoft.Win32.SaveFileDialog saveDlg = new Microsoft.Win32.SaveFileDialog(); 
     saveDlg.DefaultExt = ".rtf"; 
     saveDlg.Filter = "RTF Documents (.rtf)|*rtf"; 

     Nullable<bool> rezultat = saveDlg.ShowDialog(); 
     if (rezultat == true) 
     { 
      string filename = saveDlg.FileName; 
      System.IO.File.Create(filename); 
     } 
     else 
     { 
      this.Close(); 
     } 
    }