블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2731)
Unity3D (814)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (57)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (51)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
03-29 07:22

입력 문자 검사
프로그램을 작성하다 보면 사용자의 키보드 입력 문자를 검사해서 유용한 문자만을 허용하는 경우가 많이 있습니다.입력 문자열을 검증하는 방법 두 가지를 알아 보겠습니다
(아래 모든 코드는 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

 



출처 : http://www.mkexdev.net/Article/Content.aspx?parentCategoryID=1&categoryID=23&ID=272
반응형
Posted by blueasa
, |