-
[C#] 텍스트박스에 숫자만 입력받도록 하기Programming/C# 2019. 3. 6. 11:54
C# 에서 TextBox 에 숫자만 입력받는법을 공부했다.
private void price_box_KeyPress(object sender, KeyPressEventArgs e)
{
if(!(char.IsDigit(e.KeyChar) || e.KeyChar == Convert.ToChar(Keys.Back)))
{
e.Handled = true;
}
}-------------------------------------------------------------------------------------------------------------------------
Keypress 이벤트에 대한 함수를 생성한다.
키입력 이벤트 는 주로
KeyUP() , KeyDown(), Keypress() 세가지가 있다.
1. KeyUP() : 키보드에서 손을 땠을때.
2. KeyDown() : 키보드에서 키를 누를때
3. Keypress() : 키보드에서 길게 누르고 떗을때
이정도 개념으로 알고 넘어가주면된다.
char.IsDigit(e.KeyChar)
텍스트박스에 입력한 문자가 10진수인지 아닌지를 체크하기위함이다.
숫자는 true, 이외에 false
e.KeyChar == Convert.ToChar(Keys.Back)
키입력을 받을때. 엄연히 백스페이스가 숫자가 아닌것으로 인식되기때문에그에따른 키이벤트값의 예외처리를 해주어야. 숫자를 지울수 있다.
e.Handled = true키보드를 눌렀을때에 대한 이벤트를 적용하지않고. 잡아낸다라고 생각하면 될 것같다.
정확하게는 모르겠지만. 이것에 사용용도로 제일 적당한게 어떤 행위가 이루어질필요가 없을때. 그것을 막는다..? 정도인것같다.
결론
keypress로 인한 키보드에서 입력받은 값을 입력하기전에. 10진수의 숫자형식이 아니면 bool형식의 false처리가 되어 e.Handled = true 로 인하여 키입력에 대한 실행을 막는다. e.KeyChar == Convert.ToChar(Keys.Back) 을 이용해서 백스페이스에대한 처리는 받아야하기때문에 그에따른 예외처리를 넣어준다.
'Programming > C#' 카테고리의 다른 글
[C#] 타이틀바 없는 폼 위치이동 (0) 2019.05.12 [C#] 다차원 배열 버튼 생성해보기 (0) 2019.03.22 [C#] 사용되는 키워드, 도움주는 싸이트 (0) 2019.03.08 [C#] Hello World (0) 2019.03.08 [C#] Object Class 에 관하여 (0) 2019.03.06