2014-04-01 4 views
1

으로 winform 응용 프로그램을 만들고 있습니다. 내 양식에는 몇 가지가 있습니다 text-boxes 및 몇 buttons.Winform 텍스트 상자 유효성 검사 취소 단추가

특히 cancelButton을 클릭하면 여기에서이 이벤트로 처리되는 응용 프로그램이 닫힙니다.

private void cancelButton_Click(object sender, EventArgs e) 
{ 
    //close the application 
    Application.Exit(); 
} 

은 내가이 필드는 제대로 내 양식에 계속하기 전에 작성되어 있는지 확인하는 사용자를 강제하고 지금이

private void aTextBox_Validated(object sender, EventArgs e) 
{ 
    int matchIntPosition; 
    string someString = aTextBox.Text.ToUpper(); 

    //check a string array to see if the value entered exsists 
    matchIntPosition= Array.IndexOf(someStringArray, someString); 
    if (matchIntPosition > -1) 
    { 
     string someString = someStringArray[matchIntPosition]; 
    } 
    else 
    { 
     MessageBox.Show("This value does not exist, Please try again."); 
     aTextBox.Focus(); 
    } 
} 

같은 것을 보이는 TextBox_Validated 이벤트가 (이 처음이다 내 양식의 텍스트 상자).

여기 내 문제가 있습니다. 내 cancelButton을 클릭하면 내 aTextBox_Validation 이벤트 내에서 else에 도달합니다. 취소 버튼을 누르기 전에 적절한 값을 입력하도록 강요하십시오.

나는 그것을 고칠 수있는 방법을 찾기 위해 약간의 google-ing을했습니다. 내가 시도한 것들 중 일부는 다음과 같습니다.

cancelButton.CausesValidation = false;cancelButton_Click 이벤트 내에서 작동하지 않았습니다.

bool 깃발을 ^와 거의 같은 일을하도록 설정하려고 했는데도 작동하지 않는 것 같습니다.

어떤 생각이나 적절한 장소로 밀고 가나 요?

+0

someStringArray 변수가 어디에 선언 되었습니까? 그것은 someString 변수 값을 포함합니까? – yosbel

+0

제출 버튼 클릭시 모든 텍스트 상자의 유효성을 검사하려고합니다. 그것은 매우 일반적인 형태의 행동입니다. 문제를 해결하고 최종 고객이 좌절감을 느끼지 못하도록 방해하여 문제를 해결할 수 있습니다. – Jonesopolis

+0

@yosoy 배열이 클래스 수준에 있습니다, 당신은 내 질문의 요점을 놓쳤습니다. – Zoxac

답변

0

그러면 "제출"버튼에서 유효성 검사를 수행해야합니다. 문제는 텍스트 필드를 나갈 때 항상 Validated 이벤트가 발생하므로 "취소"버튼을 클릭해도이 문제가 발생합니다.

+0

모든 것을 OK 버튼으로 옮겼습니다 (또는 제출). 그러나 텍스트 상자 값이 유효하지 않을 때 내 오류 메시지가 표시되지만 내 프로그램의 나머지 부분은 계속됩니다. 내 논리가 내 'if/else'와 논리가 섞여 야한다고 생각합니다. 어떻게 작동할까요? 처럼. 감사. – Zoxac

0

텍스트 상자에서 포커스가 사라지면 텍스트 상자 유효성 검사를 실행 한 다음 취소 단추를 누르면 텍스트 상자에 포커스가 없어져 닫히기 전에 유효성을 검사하게됩니다.

AutoValidate = EnableAllowFocusChange

을 포함하는 양식 :

2

당신은 설정해야합니다.

관련 문제