C#에서 키 누르기 시뮬레이션

Saad Aslam 2024년2월15일
C#에서 키 누르기 시뮬레이션

이 문서에서는 C#에서 키 누르기를 시뮬레이션하는 빠르고 간단한 접근 방식을 보여줍니다.

테스트하는 동안 선택한 개체(컨트롤 또는 창)에 일련의 푸시된 버튼(키스트로크)을 전송해야 할 수도 있습니다. 선택한 컨트롤이나 창에 키 코드를 전송하여 키워드 테스트 및 스크립트에서 키 입력을 시뮬레이션할 수 있습니다.

C#에서 양식 애플리케이션 만들기

먼저 Visual Studio에서 새 Windows Form 응용 프로그램을 만듭니다.

.cs 디자인 파일을 열고 numberLabel이라는 레이블을 만들고 "Text To Be Displayed"가 될 수 있는 일부 텍스트를 할당하고 정렬을 중간 가운데로 설정하여 깔끔하게 보입니다.

numPadButtonalphabetButton을 만들고 "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";
}

출력:

C#에서 양식 응용 프로그램 만들기

키보드 이벤트가 양식에 등록되었는지 여부를 결정하는 양식에 대해 KeyPreview 기능을 활성화해야 합니다. 따라서 전체 양식을 클릭하고 오른쪽의 속성 패널에서 KeyPreview 값을 true로 설정합니다.

그런 다음 키 누르기 이벤트를 식별하고 처리하는 KeyDown 이벤트가 필요하고 이를 추가하려면 속성 패널로 이동하여 번개 기호가 있는 이벤트 탭을 엽니다. KeyDown 이벤트까지 아래로 스크롤하고 두 번 클릭합니다.

Form1_KeyDown() 메소드를 생성하고 이 메소드로 이동합니다. 이 메소드는 object 유형의 senderKeyEventArgs 유형의 이벤트 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을 눌렀을 때.

키보드에서 숫자 키패드 0을 눌렀습니다

키보드에서 Enter를 눌렀을 때.

Enter 키가 키보드에서 눌려짐

작가: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

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

관련 문장 - Csharp GUI