HOWTO · Csharp
C#에서 키 누르기 시뮬레이션
이 기사에서는 C#에서 키 누르기를 시뮬레이션하는 쉽고 간단한 방법을 배웁니다.
이 문서에서는 C#에서 키 누르기를 시뮬레이션하는 빠르고 간단한 접근 방식을 보여줍니다.
테스트하는 동안 선택한 개체(컨트롤 또는 창)에 일련의 푸시된 버튼(키스트로크)을 전송해야 할 수도 있습니다. 선택한 컨트롤이나 창에 키 코드를 전송하여 키워드 테스트 및 스크립트에서 키 입력을 시뮬레이션할 수 있습니다.
C#에서 양식 애플리케이션 만들기
먼저 Visual Studio에서 새 Windows Form 응용 프로그램을 만듭니다.
.cs 디자인 파일을 열고 numberLabel이라는 레이블을 만들고 "Text To Be Displayed"가 될 수 있는 일부 텍스트를 할당하고 정렬을 중간 가운데로 설정하여 깔끔하게 보입니다.
numPadButton과 alphabetButton을 만들고 "Click Me" 텍스트를 두 버튼에 추가해 보겠습니다. numPadButton을 두 번 클릭하면 numPadButton_Click 기능으로 이동합니다.
이 함수 내에서 numberLabel에 일부 텍스트를 할당합니다. 이 텍스트는 할당할 키를 누르면 표시됩니다.
private void numPadButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Numpad Button 0 Pressed";
}
alphabetButton으로 동일한 단계를 수행하십시오. alphabetButton_Click 함수 내에서 numberLabel에 다른 텍스트를 할당합니다. 이 텍스트는 다른 키를 눌렀을 때 표시되기 때문입니다.
private void alphabetButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Enter Pressed";
}
출력:
키보드 이벤트가 양식에 등록되었는지 여부를 결정하는 양식에 대해 KeyPreview 기능을 활성화해야 합니다. 따라서 전체 양식을 클릭하고 오른쪽의 속성 패널에서 KeyPreview 값을 true로 설정합니다.
그런 다음 키 누르기 이벤트를 식별하고 처리하는 KeyDown 이벤트가 필요하고 이를 추가하려면 속성 패널로 이동하여 번개 기호가 있는 이벤트 탭을 엽니다. KeyDown 이벤트까지 아래로 스크롤하고 두 번 클릭합니다.
Form1_KeyDown() 메소드를 생성하고 이 메소드로 이동합니다. 이 메소드는 object 유형의 sender와 KeyEventArgs 유형의 이벤트 e라는 두 개의 인수를 사용합니다.
private void Form1_KeyDown(object sender, KeyEventArgs e) {}
이제 버튼 클릭을 사용하여 특정 키를 누르는 것을 모방해야 합니다. 이 함수는 푸시된 키를 수신하고 수신된 키가 NumPad0인지 확인한 다음 numPadButton을 클릭합니다.
if (e.KeyCode == Keys.NumPad0) {
numPadButton.PerformClick();
}
alphabetButton을 사용하여 동일한 프로세스를 따라야 합니다. 따라서 이벤트 탭에서 KeyUp 이벤트를 두 번 클릭하고 Form1_KeyUp() 함수 내에서 수신된 키가 Enter인지 확인한 다음 alphabetButton 클릭을 수행합니다.
using System;
namespace SimulateKeyPress {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
private void numPadButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Numpad Button 0 Pressed";
}
private void alphabetButton_Click(object sender, EventArgs e) {
numberLabel.Text = "Enter Pressed";
}
private void Form1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.NumPad0) {
numPadButton.PerformClick();
}
}
private void Form1_KeyUp(object sender, KeyEventArgs e) {
if (e.KeyCode == Keys.Enter) {
alphabetButton.PerformClick();
}
}
private void numberLabel_Click(object sender, EventArgs e) {}
}
}
출력:
키보드에서 Numpad 0을 눌렀을 때.
키보드에서 Enter를 눌렀을 때.