2011-08-16 50 views
3

在Visual Studio C#Express 2010上,我發現取消。通過按照文檔設置e.Cancel來進行驗證會導致應用程序在退出時掛起。例如運行下面的內容並點擊標題欄'X'。如何避免.Validating()取消導致應用程序退出掛起?

任何人都知道解決方案嗎?謝謝。

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void textBox1_Validating(object sender, CancelEventArgs e) 
     { 
      e.Cancel = true; 
     } 
    } 
} 

回答

3

從被關閉,因爲textBox1防止形式是無效的 - 如果你仍然想允許用戶關閉該窗體,然後您可以處理FormClosing事件是這樣的:

private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
{ 
    e.Cancel = false; 
} 

你需要線了本次活動以正常的方式,例如:

this.FormClosing += new FormClosingEventHandler(this.Form1_FormClosing); 

如果調試上面的事件處理程序,你會看到e.Canceltrue如果您的驗證事件hanlder將e.Cancel設置爲true。

+0

非常好 - 謝謝Kragen。 – ChrisJJ

相關問題