2011-08-16 3 views
3

Visual Studio C#Express 2010で、ドキュメントごとにe.Cancelを設定して.Validatingをキャンセルすると、終了時にアプリケーションがハングします。例えば以下を実行し、タイトルバー「X」をクリックしてください。どうすればよいですか.Validating()App Exitがハングするのをキャンセルしますか?

誰かが解決策を知っていますか?ありがとう。

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; 
} 

あなたは例えば、通常の方法でこのイベントを配線する必要があります:あなたは上記のイベントハンドラをデバッグする場合は、e.Cancelがあることがわかります

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

trueあなたの検証イベントhanlderがe.Cancelをtrueに設定している場合。

+0

優秀 - ありがとうKragen。 – ChrisJJ

関連する問題