C#软键盘设计字母数字按键处理相关事件函数

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。

软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮,拖拉对应的文本、按钮等控件到设计界面即可、按键的命名遵循简单好记的规则。

字母键盘界面:26个字母按键的命名从btna-btnz。

字母按键处理代码如下:

            #region 字母按钮事件this.btna.Click += new System.EventHandler(this.btna_Click);this.btnb.Click += new System.EventHandler(this.btnb_Click);this.btnc.Click += new System.EventHandler(this.btnc_Click);this.btnd.Click += new System.EventHandler(this.btnd_Click);this.btne.Click += new System.EventHandler(this.btne_Click);this.btnf.Click += new System.EventHandler(this.btnf_Click);this.btng.Click += new System.EventHandler(this.btng_Click);this.btnh.Click += new System.EventHandler(this.btnh_Click);this.btni.Click += new System.EventHandler(this.btni_Click);this.btnj.Click += new System.EventHandler(this.btnj_Click);this.btnk.Click += new System.EventHandler(this.btnk_Click);this.btnl.Click += new System.EventHandler(this.btnl_Click);this.btnm.Click += new System.EventHandler(this.btnm_Click);this.btnn.Click += new System.EventHandler(this.btnn_Click);this.btno.Click += new System.EventHandler(this.btno_Click);this.btnp.Click += new System.EventHandler(this.btnp_Click);this.btnq.Click += new System.EventHandler(this.btnq_Click);this.btnr.Click += new System.EventHandler(this.btnr_Click);this.btns.Click += new System.EventHandler(this.btns_Click);this.btnt.Click += new System.EventHandler(this.btnt_Click);this.btnu.Click += new System.EventHandler(this.btnu_Click);this.btnv.Click += new System.EventHandler(this.btnv_Click);this.btnw.Click += new System.EventHandler(this.btnw_Click);this.btnx.Click += new System.EventHandler(this.btnx_Click);this.btny.Click += new System.EventHandler(this.btny_Click);this.btnz.Click += new System.EventHandler(this.btnz_Click);#endregion

对应的字母按钮点击事件处理代码

#region 单个字符按钮点击事件#region 第一排字母按钮点击事件private void btnq_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "q";elsetxtResult.Text += "Q"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnw_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "w";elsetxtResult.Text += "W"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btne_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "e";elsetxtResult.Text += "E"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnr_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "r";elsetxtResult.Text += "R"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnt_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "t";elsetxtResult.Text += "T"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btny_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "y";elsetxtResult.Text += "Y"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnu_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "u";elsetxtResult.Text += "U"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btni_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "i";elsetxtResult.Text += "I"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btno_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "o";elsetxtResult.Text += "O"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnp_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "p";elsetxtResult.Text += "P"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#region 第二排字母按钮点击事件private void btna_Click(object sender, EventArgs e){if (InputType == "English"){txtResult.Text += this.btna.Text;}else if (InputType == "Char"){txtResult.Text += this.btna.Text;}else if (InputType == "Chinese"){lblPinyin.Text += this.btna.Text;}//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btns_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "s";elsetxtResult.Text += "S"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnd_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "d";elsetxtResult.Text += "D"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnf_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "f";elsetxtResult.Text += "F"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btng_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "g";elsetxtResult.Text += "G"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnh_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "h";elsetxtResult.Text += "H"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnj_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "j";elsetxtResult.Text += "J"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnk_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "k";elsetxtResult.Text += "K"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnl_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "l";elsetxtResult.Text += "L"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#region 第三排字母按钮点击事件private void btnz_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "z";elsetxtResult.Text += "Z"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnx_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "x";elsetxtResult.Text += "X"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnc_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "c";elsetxtResult.Text += "C"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnv_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "v";elsetxtResult.Text += "V"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnb_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "b";elsetxtResult.Text += "B"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnn_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "n";elsetxtResult.Text += "N"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btnm_Click(object sender, EventArgs e){if (!(Caps_Lock ^ ShiftFlag))txtResult.Text += "m";elsetxtResult.Text += "M"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion#endregion

 数字键盘界面:0-9数字按键命名分别是btn0-btn9

数字按钮点击事件绑定

#region 数字按钮点击事件this.btn0.Click += new System.EventHandler(this.btn0_Click);this.btn1.Click += new System.EventHandler(this.btn1_Click);this.btn2.Click += new System.EventHandler(this.btn2_Click);this.btn3.Click += new System.EventHandler(this.btn3_Click);this.btn4.Click += new System.EventHandler(this.btn4_Click);this.btn5.Click += new System.EventHandler(this.btn5_Click);this.btn6.Click += new System.EventHandler(this.btn6_Click);this.btn7.Click += new System.EventHandler(this.btn7_Click);this.btn8.Click += new System.EventHandler(this.btn8_Click);this.btn9.Click += new System.EventHandler(this.btn9_Click);#endregion

数字按钮点击事件代码

#region 数字键盘点击事件private void btn0_Click(object sender, EventArgs e){txtResult.Text += "0";txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn1_Click(object sender, EventArgs e){txtResult.Text += "1";txtResult.Focus();//设置光标的位置到文本尾txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处txtResult.ScrollToCaret();}private void btn2_Click(object sender, EventArgs e){txtResult.Text += "2";txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn3_Click(object sender, EventArgs e){txtResult.Text += "3"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn4_Click(object sender, EventArgs e){txtResult.Text += "4"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn5_Click(object sender, EventArgs e){txtResult.Text += "5"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn6_Click(object sender, EventArgs e){txtResult.Text += "6"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn7_Click(object sender, EventArgs e){txtResult.Text += "7"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn8_Click(object sender, EventArgs e){txtResult.Text += "8"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}private void btn9_Click(object sender, EventArgs e){txtResult.Text += "9"; txtResult.Focus();//设置光标的位置到文本尾 txtResult.Select(txtResult.Text.Length, 0);//滚动到控件光标处 txtResult.ScrollToCaret();}#endregion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427659.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; func canPartition(nums []int) bool {n : len(nums)if n < 2 {return false}sum, max : 0, 0for _, v : range nums {sum vif v > max {max v}}if sum%2 ! 0 {return false}target : sum / 2if max > target {return false}dp …

对象检测边界框损失 – 从IOU到ProbIOU

1.概述 目标检测损失函数的选择在目标检测问题建模中至关重要。通常&#xff0c;目标检测需要两个损失函数&#xff0c;一个用于对象分类&#xff0c;另一个用于边界框回归&#xff08;BBR&#xff09;。本文将重点介绍 IoU 损失函数&#xff08;GIoU 损失、DIoU 损失和 CIoU 损…

一、Numpy使用

1、numpy的简单使用 import numpy as np #利用as给numpy起一个别名np# 使用array来承接这个数组 array np.array([[1,2,3],[2,3,4]])print(array) print("number of dim:", array.ndim) # ndim 数组维度 print("shape:", array.shape) # 数组的形…

Spring Boot从0到1 -day02

目录 学习目标Spring Boot 的基本配置启动类与核心注解SpringBootApplicationSpring Boot 的全局配置文件1. application.properties2. application.ymlSpring 中Spring Boot Application注解的作用 自动配置原理1. 自动配置类2. 自动配置的发现示例3. 自定义自动配置 条件注解…

Prompt最佳实践|指定输出的长度

在OpenAI的官方文档中已经提供了[Prompt Enginerring]的最佳实践&#xff0c;目的就是帮助用户更好的使用ChatGPT 编写优秀的提示词我一共总结了9个分类&#xff0c;本文讲解第6个分类&#xff1a;指定输出长度 提供更多的细节要求模型扮演角色使用分隔符指定任务步骤提供样例…

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新&#xff0c; 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…

从黎巴嫩电子通信设备爆炸看如何防范网络电子袭击

引言&#xff1a; 在当今数字化时代&#xff0c;电子通信设备已成为我们日常生活中不可或缺的一部分。然而&#xff0c;近期黎巴嫩发生的电子设备爆炸事件提醒我们&#xff0c;这些设备也可能成为危险的武器。本文将深入探讨电子袭击的原理、防范措施&#xff0c;以及网络智能…

【论文阅读】Face2Diffusion for Fast and Editable Face Personalization

code&#xff1a;mapooon/Face2Diffusion: [CVPR 2024] Face2Diffusion for Fast and Editable Face Personalization https://arxiv.org/abs/2403.05094 (github.com) 论文 介绍 目标&#xff1a;向 T2I 模型不知道的图像中插入特定概念&#xff08;例如某人的脸&#xff…

极狐GitLab 重要安全版本:17.3.3, 17.2.7, 17.1.8, 17.0.8, 16.11.10

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

通过logstash同步elasticsearch数据

1 概述 logstash是一个对数据进行抽取、转换、输出的工具&#xff0c;能对接多种数据源和目标数据。本文介绍通过它来同步elasticsearch的数据。 2 环境 实验仅仅需要一台logstash机器和两台elasticsearch机器&#xff08;elasticsearch v7.1.0&#xff09;。本文用docker来模…

css 样式简单学习(一)

目录 1. css 介绍 1.1 css 样式 1.2 css代码风格 1.2.1 书写格式 1.2.2 样式大小写​编辑 1.2.3 空格规范 2. 基础选择器 2.1 选择器的作用​编辑 2.2 选择器的分类 2.3 基础选择器 2.3.1 标签选择器​编辑 2.3.2 类选择器​编辑 2.3.3 类选择器-多类名​编辑 2.…

简单题88. 合并两个有序数组 (Python)20240920

问题描述&#xff1a; python&#xff1a; class Solution(object):def merge(self, nums1, m, nums2, n):""":type nums1: List[int]:type m: int:type nums2: List[int]:type n: int:rtype: None Do not return anything, modify nums1 in-place instead.&qu…

选址模型 | 基于混沌模拟退火粒子群优化算法的电动汽车充电站选址与定容(Matlab)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于混沌模拟退火粒子群优化算法的电动汽车充电站选址与定容&#xff08;Matlab&#xff09; 问题建模&#xff1a;首先&#xff0c;需要将电动汽车充电站选址与定容问题进行数学建模&#xff0c;确定目标函数和约束…

React18入门教程

React介绍 React由Meta公司开发&#xff0c;是一个用于 构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式 不错的性能 相较于其它前端框架的优势 丰富的生态 跨平台支持 React的市场情况 全球最流行&#xff0c;大厂必备 开发环境…

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL24

边沿检测 有一个缓慢变化的1bit信号a&#xff0c;编写一个程序检测a信号的上升沿给出指示信号rise&#xff0c;当a信号出现下降沿时给出指示信号down。 注&#xff1a;rise,down应为单脉冲信号&#xff0c;在相应边沿出现时的下一个时钟为高&#xff0c;之后恢复到0&#xff0…

密集行人数据集 CrowdHumanvoc和yolo两种格式,yolo可以直接使用train val test已经划分好有yolov8训练200轮模型

密集行人数据集 CrowdHuman voc和yolo两种格式&#xff0c;yolo可以直接使用 train val test已经划分好 有yolov8训练200轮模型。 CrowdHuman 密集行人检测数据集 数据集描述 CrowdHuman数据集是一个专为密集行人检测设计的数据集&#xff0c;旨在解决行人密集场景下的检测挑…

关于实时数仓的几点技术分享

一、实时数仓建设背景 业务需求的变化&#xff1a;随着互联网和移动互联网的快速发展&#xff0c;企业的业务需求变得越来越复杂和多样化&#xff0c;对数据处理的速度和质量要求也越来越高。传统的T1数据处理模式已经无法满足企业的需求&#xff0c;实时数据处理成为了一种必…

什么是 IP 地址信誉?5 种改进方法

IP 地址声誉是营销中广泛使用的概念。它衡量 IP 地址的质量&#xff0c;这意味着您的电子邮件进入垃圾邮件或被完全阻止发送的可能性。 由于每个人都使用专用电子邮件提供商而不是直接通过 IP 地址进行通信&#xff0c;因此&#xff0c;这些服务可以跟踪和衡量发件人的行为质量…

表情包创作、取图小程序端(带流量主)

小程序永久免费&#xff0c;无任何广告&#xff0c;无任何违规功能&#xff01; 小程序具备以下功能有&#xff1a; 支持创作者加入 支持在线制作表情包 使用说明 表情包必备工具&#xff0c;一款专属于你的制作表情包工具&#xff0c;斗图必备神器

Linux下进程通信与FIFO操作详解

Linux下进程通信与FIFO操作详解 一、命名管道(FIFO)概述1.1 命名管道的特点1.2 创建命名管道二、命名管道的操作2.1 打开命名管道2.2 读写命名管道2.3 关闭命名管道三、命名管道的使用实例3.1 命名管道的创建和通信过程3.1.1 发送方(writer)3.1.2 接收方(reader)3.2 运行…