반응형
* C# 윈도우 폼(Window Form) - Control, Shift, Alt 키 조합 키 입력 받기 (단축키) 예제...
전체 소스 코드
Form1.cs
= 첫번째 방법
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CSharp_FormKey
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
Keys key = keyData & ~(Keys.Shift | Keys.Control | Keys.Alt );
switch (key)
{
case Keys.S:
{
if ((keyData & Keys.Control) != 0)
{
//Control + S 조합 임
MessageBox.Show("Control + S 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
break;
}
case Keys.F5:
{
//걍 F5 키 누름
MessageBox.Show("F5 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
break;
}
case Keys.Tab:
{
if ((keyData & Keys.Shift) != 0)
{
//Shift + Tab 조합 임
MessageBox.Show("Shift + Tab 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
break;
}
case Keys.Enter :
{
if ((keyData & Keys.Alt) != 0)
{
MessageBox.Show("Alt + Enter 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
break;
}
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
}
= 두번째 방법
- Form KeyDown 이벤트를 받아서 구현 해 주는 방법
- Form 속성 -> keyPreview 를 true를 해 줍니다.
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control)
{
switch (e.KeyCode)
{
case Keys.S:
{
//Control + S 조합 임
MessageBox.Show("Control + S 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
break;
}
}
}
else if (e.Modifiers == Keys.Alt)
{
switch (e.KeyCode)
{
case Keys.Enter:
{
//Alt + Enter 조합 임
MessageBox.Show("Alt + Enter 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
break;
}
}
}
else
{
switch (e.KeyCode)
{
case Keys.F5 :
{
MessageBox.Show("F5 키를 입력 하였습니다.", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
break;
}
}
}
}
*예제 결과
https://kdsoft-zeros.tistory.com/148
반응형
'C# Programming' 카테고리의 다른 글
[C#] [WMI] HDD Temperature (하드디스크 온도 체크) (0) | 2020.02.24 |
---|---|
[C#] Provider - 로컬 네트워크에 사용가능한 OLEDB 공급자 (0) | 2020.02.22 |
[C#] 윈도우 폼 (Window Form) - 투명도(Opacity ) 조절 (0) | 2020.02.17 |
[C#] Network MacAddress (네트워크 맥 주소 구하기) (0) | 2020.02.13 |
[C#] ref 키워드 와 out 키워드의 차이 (0) | 2020.02.12 |