迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

在 C# 中模拟按键

作者:迹忆客 最近更新:2024/02/01 浏览次数:

本文演示了一种在 C# 中模拟按键的快速而直接的方法。

在测试期间,你可能需要将一系列按下的按钮(击键)传输到所选对象 - 控件或窗口。你可以通过将键代码传输到所选控件或窗口来模拟来自关键字测试和脚本的击键。


在 C# 中创建表单应用程序

首先,在 Visual Studio 中创建一个新的 Windows 窗体应用程序。

打开你的 .cs 设计文件并创建一个名为 numberLabel 的标签,并为其分配一些可以是 "Text To Be Displayed" 的文本,将其对齐设置为 Middle Center 以看起来干净。

让我们创建 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";
}

我们需要为我们的表单启用 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) {}
  }
}

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 C# 中的接口中实现属性

发布时间:2024/02/01 浏览次数:100 分类:编程语言

本文介绍如何在 C# 中的接口中实现属性。C# 中的接口可以有许多不同的属性,以及指定我们应该如何在其中声明属性可用性的访问修饰符。该接口通常充当不同成员和对象的默认实现。

在 C# 中注释文本块

发布时间:2024/02/01 浏览次数:192 分类:编程语言

本教程教你如何在 C# 中注释一段文本或代码。作为注解的注释处于更高的抽象级别,编译器在编译 C# 代码时会忽略它。

C# 中的局部类

发布时间:2024/02/01 浏览次数:61 分类:编程语言

我们可以使用 C# 中的局部类将一个类的定义拆分到多个文件中。C# 中的局部类 partial 关键字在 C# 中指定了部分类。

C# 中的结构体和类之间的区别

发布时间:2024/02/01 浏览次数:175 分类:编程语言

结构体是驻留在堆栈中的值类型变量,而类是驻留在堆中的引用类型变量。在本教程中,我们将讨论 C# 中的结构体和类之间的区别和相似之处。

在 C# 中销毁对象

发布时间:2024/02/01 浏览次数:94 分类:编程语言

在 C# 中,我们可以通过给一个对象赋值为空来销毁它。通过在 C# 中分配 null 值来销毁类对象

在 C# 中复制一个对象

发布时间:2024/02/01 浏览次数:120 分类:编程语言

有两种主要方法可用于在 C# 中创建对象的单独副本,MemberWiseClone()函数和参数化构造函数方法。在 C# 中使用 MemberWiseClone() 方法复制对象

C# 中的 Java final 等效关键字

发布时间:2024/02/01 浏览次数:59 分类:编程语言

C# 中有两个不同的关键字,它们等效于 Java 中的 final 关键字,用于类和函数的 sealed 关键字以及用于字段的 readonly 关键字。本教程将讨论与 Java 中的 final 关键字等效的 C# 关键字。Java final 关键

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便