반응형

C# 키 코드 확인 예제 

 

글. 오상문 sualchi@daum.net 

 

(1) 비주얼 스튜디오에서 C# 폼 프로젝트를 생성합니다. 

 

(2) 폼을 다음처럼 구성합니다. 

레이블 1개

텍스트상자 5개입니다. textCtrl, textAlt, textDel, textChar, textBox1

 

모든 텍스트상자의 Enable 속성은 False로 설정합니다.

 

 

 

(3) 다음처럼 Form1.cs 소스 파일을 코딩합니다.

 

단, 이벤트 두 개를 먼저 등록해야 합니다. 

폼이 선택된 상태에서 속성에 있는 번개 아이콘(이벤트 등록)을 선택합니다. 

그리고 KeyDown, KeyPress 이벤트에 핸들러(처리기)를 등록합니다. 

이벤트 해당 입력 칸을 선택하고 엔터를 눌러주면 이름이 자동으로 등록됩니다. 

그러면 소스에도 해당 이벤트를 입력할 수 있는 처리기가 같은 이름으로 생깁니다.

 

 

 

using System;

using System.Windows.Forms;

 

namespace KeyDemo

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

 

        private void Form1_KeyDown(object sender, KeyEventArgs e)

        {

            textCtrl.Text = (e.Control) ? "Ctrl" : "";  // (e.KeyData & Keys.Control) ? ...

            textAlt.Text = (e.Alt) ? "Alt" : "";         // (e.KeyData & Keys.Alt) ? ...

            textShift.Text = (e.Shift) ? "Shift" : "";  // (e.KeyData & Keys.Shift) ? ... 

 

            switch (e.KeyCode)

            {

                case Keys.Oemcomma:

                    textBox1.Text = "Comma" + " 키가 눌렸습니다.";

                    break;

                case Keys.OemPeriod:

                    textBox1.Text = "Period" + " 키가 눌렸습니다.";

                    break;

                default:

                    textBox1.Text = (new KeysConverter()).ConvertToString(e.KeyCode) + " 키가 눌렸습니다.";

                    break; 

            }

        }

 

        // WM_CHAR 메시지와도 관련됨  

        private void Form1_KeyPress(object sender, KeyPressEventArgs e)

        {

            String s = ""; 

            s += e.KeyChar;

            textChar.Text = s;

 

            // textChar.Text = (new KeysConverter()).ConvertToString(e.KeyChar);

        }

    }

}

 

 

(4) 빌드해서 실행하고 키를 입력하면 해당 키가 눌렸다는 메시지를 볼 수 있습니다.    

 

 

 

<이상> 

 

 

반응형

+ Recent posts