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를 눌렀을 때.
I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.
LinkedIn