텍스트 박스에서 속성창에 보면 이벤트(번개 모양의 아이콘)에 들어가서 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;
이부분은 조건에서 위배되는 부분, 즉 , 여기서는 문자 입력이 되지 않도록 하여
숫자가 아닌 문자을 입력방지 되도록 입력받은 문자에 대한 태클을 건다는 것..
'C#' 카테고리의 다른 글
[C#] PictureBox 이미지 안보이게 설정 (0) | 2011.09.27 |
---|---|
C# 텍스트박스 입력 안되게 하는 방법 (1) | 2011.08.28 |
C# 콘솔 & 윈폼에서 초기화하지 않은 배열의 디폴트 값 확인 (0) | 2011.06.04 |