반응형
/**
// KeyDown : 컨트롤에 포커스가 있을 때 키를 누르면 발생합니다.
// - https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.control.keydown?view=net-5.0
// KeyPress : 컨트롤에 포커스가 있을 때 문자, 스페이스 또는 백스페이스 키를 누르면 발생합니다.
// - https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.control.keypress?view=net-5.0
// KeyUp : 컨트롤에 포커스가 있을 때 키를 눌렀다 놓으면 발생합니다.
// - https://docs.microsoft.com/ko-kr/dotnet/api/system.windows.forms.control.keyup?view=net-5.0
*/
//===========================================================
edtSampleControl.KeyDown += OnKeyDown_Enter; //엔터값 확인
private void OnKeyDown_Enter(object sender, KeyEventArgs e)
{
Console.WriteLine($"KeyDown code: {e.KeyCode}, value: {e.KeyValue}, modifiers: {e.Modifiers}" + "\r\n");
if (e.KeyCode == Keys.Enter)
{
//엔터입력 처리
e.Handled = true;
}
}
//===========================================================
edtSampleControl.KeyPress += OnKeyPress_OnlyNumberic; //숫자, 백스페이스, 삭제만 허용
private void OnKeyPress_OnlyNumberic(object sender, KeyPressEventArgs e)
{
Console.WriteLine($"KeyPress keychar: {e.KeyChar}" + "\r\n");
//숫자, 백스페이스, 삭제만 허용
char keyChar = e.KeyChar;
if (!(char.IsDigit(keyChar) || e.KeyChar == Convert.ToChar(Keys.Back) || e.KeyChar == Convert.ToChar(Keys.Delete))) //숫자와 백스페이스, 삭제를 제외한 나머지를 바로 처리
{
e.Handled = true;
}
}
//===========================================================
edtSampleControl.KeyPress += OnKeyPress_EscapeToClear; //Escape(ESC) 입력시 Text지우기
private void OnKeyPress_OnlyNumberic(object sender, KeyPressEventArgs e)
{
Console.WriteLine($"KeyPress keychar: {e.KeyChar}" + "\r\n");
//Escape(ESC) 입력시 Text지우기
if (e.KeyChar == Convert.ToChar(Keys.Escape))
{
Control cmp = sender as Control;
if(cmp != null)
{
cmp.Text = null;
e.Handled = true;
}
}
}
//===========================================================
edtSampleControl.KeyPress += OnKeyUp_Sample;
private void OnKeyUp_Sample(object sender, KeyEventArgs e)
{
Console.WriteLine( $"KeyUp code: {e.KeyCode}, value: {e.KeyValue}, modifiers: {e.Modifiers}" + "\r\n");
}
반응형
'Language > C#(CLR,.NET)' 카테고리의 다른 글
[C#/Version] ClickOnce 또는 Assemply 현재 버전(Current Version) 확인 (0) | 2021.10.01 |
---|---|
[C#/JSON] JSON 파일 쓰기/일기 (Write/Read) - using Newtonsoft.Json (0) | 2021.10.01 |
[C#] 어셈블리 EnvDTE, EnvDTE80 간접 참조 경고 발생시 (0) | 2013.04.04 |
[C#]Window Form에 적용할 DevExpress Skin 관련 소스 (0) | 2013.04.03 |
[C#] LINK(.LNK, 바로가기)파일의 실제 파일명 알아내기 (0) | 2013.04.01 |