2011-01-27 2 views

답변

3

이것은 WinForms이므로 텍스트 상자에서 TextChanged 이벤트를 모니터링하고 단추의 활성화 상태를 업데이트하는 메서드를 호출해야합니다 (여기서 string.IsNullOrEmptystring.IsNullOrWhiteSpace이 유용합니다).

다음 예제에서는 단추를 사용하기 전에 텍스트 상자에 내용을 표시하려는 간단한 상황을 보여줍니다. 당신은 더 복잡하고 시간이 많이 소요 활성화 상태를 결정하기 위해 뭔가를하고 싶은 경우

private void OnTextChanged(object sender, EventArgs args) 
{ 
    UpdateUserInterface(); 
} 

private void UpdateUserInterface() 
{ 
    this.myButton.Enabled = !string.IsNullOrWhiteSpace(this.textBox1.Text) && 
          !string.IsNullOrWhiteSpace(this.textBox2.Text); 
} 

, 당신은 입력이 완료 될 때까지 버튼의 상태 업데이트를 지연시키는 것을 고려할 수 있습니다. 예를 들어 작은 간격의 타이머는 TextChanged 이벤트가 발생하고 마침내 UpdateUserInterface 메서드를 호출하는 자체 Tick 이벤트 처리기에서 중지 될 때마다 다시 시작됩니다. 이 학습 나는이 정보를 사냥 사람들을 위해 노트를 좌우로 다음 사항을 강등 한 윈폼 응용 프로그램이기 때문에

사이드
을 말한다.

WPF의 경우 비슷한 방법을 사용하거나 적절한 값 변환기를 사용하여 교활한 바인딩을 사용할 수 있습니다. 나는 그것을 간단하게 유지하는 것이 좋습니다.

ASP.NET의 경우 클라이언트 측에서 javacript를 사용하여 텍스트 상자의 onChange 이벤트에 연결하고 값 *을 테스트 할 수 있습니다. 그 여분의 정보를 Oded

** 감사합니다. *

+0

asp.net에서 이것은 자바 스크립트로 클라이언트 측에서 수행 할 수 있습니다 - 텍스트 상자의 'onChange' 이벤트에 연결하고 값을 테스트합니다. – Oded

+0

@Oded : 감사합니다. 답변을 업데이트하겠습니다. –

+0

그것은 C# WinForms에 있습니다. –

2

Winfoems 또는 WPF에서, 하나의 핸들러와 두 텍스트 상자의의 TextChanged 이벤트에 후크. 이 핸들러에서 두 텍스트 상자의 현재 텍스트를 봅니다 (심도 깊게 들어 가지 마십시오. 모든 키 입력에서 이벤트가 발생하므로 심층적 인 유효성 검사로 UI 응답 속도가 느려집니다). 텍스트가 비어 있지 않으면 또는 여백 만 사용하려면 버튼을 활성화하십시오. 그렇지 않으면 비활성화하십시오.

ASP.NET에서 JavaScript를 사용해야합니다. DOM의 텍스트 상자에는 WinForms와 비슷한 작업을 수행하는 Javascript 함수를 지정할 수있는 유사한 OnChanged 이벤트가 있습니다. 자바 스크립트가 비활성화 된 상태에서 브라우저를 실행할 수 있으므로 서버 측에서 null을 확인하고 기본적으로 버튼이 비활성화되어 있지 않은지 확인해야합니다 (자바 스크립트, OnChanged 함수 또는 문서로드).

관련 문제