C#

C# 텍스트박스에 숫자만 입력하기

Geuny 2011. 8. 28. 18:13





텍스트 박스에서 속성창에 보면 이벤트(번개 모양의 아이콘)에 들어가서 KeyPress 더블클릭





























KeyPress 이벤트에 대한 함수가 생성되었다면 그 안에 다음의 코드를 넣는다


내가 여기서 잠깐 헷갈렸었다..

e.Handled = true; 


이 부분에서 살짝 ..;;ㅋ

먼저,

char.IsDigit(e.KeyChar)  : 텍스트박스에 입력한 문자가 10진수인지 아닌지를 체크한다.
bool형 이므로 숫자면 true를, 숫자가 아니면 false를 반환한다.

e.KeyChar == Convert.ToChar(Keys.Back)
이 부분은 백스페이스 기능이 되도록 하는 부분이다.
이 부분이 없으면 숫자만 입력되고 지울 수 없기 때문이다

if() 내의 e.Handled = true;

이부븐은 내가 착각한게 true일 때,
문자 입력 처리 이벤트가 정상적으로 완료되었다고 생각했던 것.. 

if() 조건에서 ! 지우고 실행시키니 숫자가 입력이 안되었다.

다시 !를 넣으니 문자가 입력이 안되었다. 숫자는 입력되고..

결론은... e.Handled = true;  
이부분은 조건에서 위배되는 부분, 즉 , 여기서는 문자 입력이 되지 않도록 하여
숫자가 아닌 문자을 입력방지 되도록 입력받은 문자에 대한 태클을 건다는 것..