반응형

 

 

 

에디터로 사용하는 텍스트 박스에 입력을 하면서 저장하는 단축키를 추가해주고 싶어서

Ctrl키와 S를 눌렀을 때 저장해주는 특정 함수를 호출하는 이벤트를 추가해봄

 

2개 이상의 단축키 지정 과정

1. Xaml 컨트롤인 텍스트박스에 키다운/키업 이벤트를 추가해준다

2. CS코드에서 키다운/키업 함수에 키보드 입력을 받는 부분을 추가해준다

3. Ctrl+S를 동시에 눌렀을 때, 사용하고싶은 함수를 호출해준다

 



먼저 사용중인 Xaml의 텍스트 블럭에 키보드 이벤트를 추가해준다

나중에 줄바꿈이 되는 텍스트 박스 글쓰기 (AcceptsReturn="True")
<!--<TextBox x:Name="textBox" AcceptsReturn="True" KeyDown="textBox_KeyDown" />-->

xaml 코드

<TextBox x:Name="textBox" KeyDown="textBox_KeyDown" />



cs 코드
키보드 입력을 받을 때 필요한 using문과 키다운 이벤트를 추가해주었다

 

using System.Windows.Input;

private void textBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
	if (e.Key == Key.S && Keyboard.Modifiers == ModifierKeys.Control)
  {                
      //ctrl+s 를 눌렀을 때 호출할 함수명
  }
}

 

마찬가지로 한가지의 키보드 입력만 받고싶을 때는 아래와 같이 진행하면 된다

using System.Windows.Input;

private void textBox_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
	if (e.Key == Key.S)
  {                
      //S 를 눌렀을 때 호출할 함수명
  } else if (e.Key == Key.Enter)
  {
  	//텍스트 입력 후 엔터로 호출할 함수명
  }
  
}

위의 코드는 텍스트를 입력 후 엔터로 다음단계를 진행하고싶을 때 추가해준 방식이다

 

 

KeyDown 등의 키보드 이벤트에는 PreviewKeyDown과 그냥 KeyDown 2개의 키보드 이벤트가 있는데

두개의 차이는 이것을 작성하면서 찾아보았으므로 다음에 기록할 예정


위의 영역에서 Keyboard.Modifiers라는 부분을 궁금해서 찾아본 결과

모디파이어 키들은 Modifier keys (Ctrl, Alt and/or Shift) 각각 컨트롤, 알트, 시프트 키를 얘기한다고 한다





참고 : 

키보드 2개 입력 (ctrl + s)
https://stackoverflow.com/questions/26361441/how-do-i-detect-ctrl-s-in-a-window-in-c-my-eventargs-dont-have-e-modifiers


반응형

+ Recent posts