Creative Commons License

Microsoft .NET

닷넷!시작하기
닷넷! Ver 2.0~
닷넷!스킬업
웹개발
윈폼개발
실용모듈개발
Tip & Tech
하루 한 문법

Microsoft .NET 개발자들을 위한 공간입니다. 기초강의에서 부터 고급 기술 정보 및 팁등을 다루도록 하겠습니다.

.

Tip & Tech

개발 중 해결한 혹은 미리 알고 있으면 좋은 팁성 글을 공유하는 공간입니다

[C#] 입력 문자 검사

작성자 : 박종명
최초 작성일 : 2008-05-19 (월요일)
최종 수정일 : 2008-05-19 (월요일)
조회 수 : 7102

입력 문자 검사

프로그램을 작성하다 보면 사용자의 키보드 입력 문자를 검사해서 유용한 문자만을 허용하는 경우가 많이 있습니다. 입력 문자열을 검증하는 방법 두 가지를 알아 보겠습니다
(아래 모든 코드는 TextBox KeyPress 이벤트에 정의된다고 가정한다)


1. Char 구조체를 사용한 문자 검증 방법

Char 구조체의 static 메서드를 이용하여 입력문자를 검증할 수 있다.
아래 표는 문자열을 검증하는 메서드의 표이다



예제> 몇 가지 예를 살펴보면..

a.
숫자만 허용
if(!(Char.IsDigit(e.KeyChar)) && e.KeyChar != 8){

             e.Handled = true;

}

b.
문자만 허용
if(! ((e.KeyChar >= 65 && e.KeyChar <= 90) ||  (e.KeyChar >= 97 && e.KeyChar <= 122))

&& e.KeyChar != 8) {

             e.Handled = true;

}

c.
한글만 허용
if ((Char.IsPunctuation(e.KeyChar) || Char.IsDigit(e.KeyChar) ||

               Char.IsLetter(e.KeyChar) || Char.IsSymbol(e.KeyChar))

               && e.KeyChar != 8)

{

        e.Handled = true;

}

설명>>
TextBox
KeyPress 이벤트에서 사용자의 입력값을 받아서Char 구조체가 제공하는 메서드를 사용해서 문자 검증을 수행한다. 입력을 불허해야 하는 상황이라면 KeyPressEventArgs Handled 속성을 true 로 설정하여 
TextBox KeyPress 이벤트를 취소 시킨다.
(, TextBox 에 글이 적히지 않도록 한다)
e.KeyChar != 8  이부분은 빽스페이스 키가 아니면 참이라는 것인데 즉 이말은 빽스페이스 키는 검증대상에 포함시키지 않는다는 의미가 된다

 

 

2. 사용자가 입력한 char를 자체를 검증하는 방법

위의 예제를 보면 알 수 있듯이 KeyPressEventArgs KeyChar 는 현재 입력한char를 의미한다. char 의 범위나 키 자체의 단일 정수값을 이용해 입력 값을  검증할 수 있다.
아래 표는 각 키의 값을 나타내는 표이다



예제> 위에서 살펴본 문자열만 입력 허용하는 것을 아래와 같이 할 수도 있다

 
if(! ((e.KeyChar >= 65 && e.KeyChar <= 90) || 
      (e.KeyChar >= 97 && e.KeyChar <= 122))

&& e.KeyChar != 8)

{

        e.Handled = true;

}

  

 


정리>> 자주 쓰이는 부분만 따로 정리해 보면


8 : 백 스페이스

32 : 스페이스

13 : 엔터

16 : Shift

17 , 18 : Ctrl , Alt

20 : Caps Lock

27 : ESC

                                                    

45 , 46 : Insert , Delete

                                

48 ~ 57 : 숫자(0 ~ 9)                

65 ~ 90 : A ~ Z

97 ~ 122 : a ~ z

                               

112 ~ 123 : F1 ~ F12

144 : Num Lock

 



이름
비밀번호
홈페이지
CW <- 왼쪽의 문자를 오른쪽 박스에 똑같이 입력해 주세요