반응형

C# -- MaskedTextBox -- 주민등록번호 입력 적용



참고 : http://stackoverflow.com/a/4413209

       https://msdn.microsoft.com/ko-kr/library/system.windows.forms.maskedtextbox.maskinputrejected(v=vs.110).aspx

       https://msdn.microsoft.com/ko-kr/library/system.windows.forms.maskedtextbox.mask(v=vs.110).aspx

       http://www.csharpstudy.com/WinForms/WinForms-maskedtextbox.aspx

       https://msdn.microsoft.com/ko-kr/library/system.windows.forms.maskedtextbox.resetonspace(v=vs.110).aspx

       http://www.dreamincode.net/forums/topic/168804-c%23-masked-text-box-position-cursor-to-left/




1. winform 으로 프로젝트 만들고, MaskedTextBox 올려 놓는다.

  --> MaskedTextBox 속성에서 Mask 선택한다.



2. 다양한 mask 선택하는 창이 나오면, 주민등록번호 mask 를 선택후 ok 버튼 누른다.



3. 속성창에 Mask 적용된게 보인다. 




4. 프로그램 실행 시켜보면, 의도와는 다르게 공백 입력 가능한 상태가 되어 문제....

  -->즉, spacebar 누르면, 숫자 아닌데도 그냥 다음칸으로 이동하는 문제있다.





5. 속성창에서 ResetOnSpace 항목을 False 로 한다. ( spacebar 입력 무시하기위해)









마우스 클릭 이벤트 생길때, 공백 생기는곳 클릭 금지시키자...

- 공백생기는 곳 클릭시에는, 공백제거하는 trim() 메소드 적용후, 기존 입력값의 맨뒤로 이동하게 한다! 




--- 이제 프로그램 실행하면, 제대로된 주민등록번호 입력창 성공!!!!!




PS)  마우스 클릭은 막았지만, 키보드 화살표로 이동하여 공백 생기는 경우는 막지 않음.  필요없다고 생각해서 안함.




<< 참고 사항 >>


// 주민등록번호 Mask 

maskedTextBox1.Mask = "000000-0000000";


// spacebar 입력 무시하기

maskedTextBox1.ResetOnSpace = false;


// 내용 지우기

maskedTextBox1.Clear();  




<< 소스 >>










반응형
Posted by 자유프로그램
,