[WPF] WPF 키보드 이벤트(키 입력) 연습

안녕하세요.

 

WPF에서 키보드에서 특정 키가 입력했을 때 이벤트가 발생되도록 하는 방법에 대해서 알려 드리려고 합니다.

 

큰 어려움이 없기 때문에 바로 예제 코드를 통해서 어떻게 키보드 입력을 받고 이벤트를 처리하는지 보도록 하겠습니다.

 

 

Xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
<Window x:Class="ComboBox.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ComboBox"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="400">
    <StackPanel>
        <TextBox x:Name="uiTb" KeyDown="uiTb_KeyDown" Margin="20"/>
    </StackPanel>
</Window>
 
cs

 

비하인드 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
 
namespace ComboBox
{
    /// <summary>
    /// MainWindow.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// 텍스트박스 KeyDown 이벤트 핸들러
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void uiTb_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.O)
            {
                MessageBox.Show("O Key 입력");
            }
 
            if ((Keyboard.Modifiers & ModifierKeys.Control) != 0)
            {
                MessageBox.Show("Ctrl 입력");
            }
 
            if (Keyboard.IsKeyDown(Key.LeftAlt))
            {
                MessageBox.Show("Alt 키 입력");
            }
 
            //복합키
            if (Keyboard.IsKeyDown(Key.LeftAlt) && Keyboard.IsKeyDown(Key.Enter))
            {
                MessageBox.Show("Alt + Enter 키");
            }
        }
    }
}
 
cs

 

실행 결과

 

위와 같이 C# 비하인드 코드에서 Key, Keboard 클래스를 이용하여 키 입력 이벤트를 발생시켜 보았습니다.

 

소스코드가 어렵지 않기 때문에 한번씩 따라 쳐 보시는걸 추천 드리겠습니다.

 

감사합니다.^^

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY