2012-12-16 8 views
1

텍스트 상자가있는 간단한 폼이 있고이 컨트롤을 닫거나 건너 뛰기 전에 텍스트 상자에 데이터를 입력하도록하고 싶지만 유효성 검사 이벤트를 처리 할 때, 나는 오직 CauseValidation 속성이 true로 설정된 취소 단추를 넣음으로써 양식을 닫을 수 있습니다. 제 질문은 어떻게하면 텍스트 상자에 아무 것도 쓰여 있지 않아도 양식을 닫기 위해 컨트롤 상자에서 X 버튼을 사용할 수 있습니까? form_closing 처리기에서이 버튼을 두 번 클릭하면 작동하지만 X 버튼을 한 번만 눌러 양식을 닫을 수 있습니까? 여기컨트롤 박스에서 폼을 닫기위한 유효성 검사 건너 뛰기

내 form.cs는 파일입니다

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 Validation 
    { 
     public partial class Form1 : Form 
     { 
      public Form1() 
      { 
       InitializeComponent(); 

      } 

      private void textBox1_Validating(object sender, CancelEventArgs e) 
      { 

       if(textBox1.Text.Trim().Equals(string.Empty)) 
       { 
       e.Cancel=true; 

       errorProvider1.SetError(textBox1,"Error"); 

       } 
       else 
        errorProvider1.SetError(textBox1,""); 
      } 
     private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      textBox1.CausesValidation = false; 
     } 
     } 
    } 

덕분에 많이

답변

0

예,이 하나를 시도해보십시오. 이전 답변을 제외하고

private void Form2_FormClosing(object sender, FormClosingEventArgs e) 
     { 
      if (textBox1.CausesValidation) 
      { 
       textBox1.CausesValidation = false; 
       Close(); 
      } 
     } 
+0

감사를 당신이 "당신으로 허용 대답"을 클릭하지 때문에 –

+0

spajce 많은 당신에게 내 대답에 만족하지 않습니다. 농담이야. 환영! :) – spajce

0

이 방법도 작동합니다

private void Input_FormClosing(object sender, FormClosingEventArgs e) 
     { 


      e.Cancel = false; 

     }