-
[C#] - WinForm TextBox 유효한 숫자만 입력받게 하기.NET/CSharp 2017. 8. 25. 10:30
MSDN KeyDown Event
https://msdn.microsoft.com/ko-kr/library/system.windows.forms.control.keydown(v=vs.110).aspx
Ctrl + V 를 통한 입력은 방지 하였습니다.
private void InputTextBox_KeyDown(object sender, KeyEventArgs e) { TextBox textBox = sender as TextBox; if (e.Control && e.KeyCode == Keys.V) { e.SuppressKeyPress = true; return; } bool numberEntered = false; if (e.KeyCode >= Keys.D0 && e.KeyCode <= Keys.D9) { numberEntered = true; } else if (e.KeyCode >= Keys.NumPad0 && e.KeyCode <= Keys.NumPad9) { numberEntered = true; } if (numberEntered) { if (textBox.Text.Length == 0) { if (e.KeyValue == '0') { e.SuppressKeyPress = true; } } else { if (textBox.Text.ElementAt(0) != '0') { int selectionStart = textBox.SelectionStart; if ((selectionStart == 0) && (e.KeyValue == '0')) { e.SuppressKeyPress = true; } } } } } private void InputTextBox_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) { e.Handled = true; } }
'.NET > CSharp' 카테고리의 다른 글
[C#] - WinForm 컨트롤 사용하기 (0) 2018.08.26 [C#] - 실행중인 파일 디렉토리 얻기 (0) 2018.07.18 [C#] - WinForm ActiveX 컨트롤 만들기 (1) 2018.06.09 [C#] - WinForm 특정 사이즈 컨트롤 만들기 (0) 2017.10.21 [C#] - Enum 사용하기 (0) 2017.08.19