当前位置: 首页 > news >正文

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

相关文章:

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

应用场景:便携式设备和检测设备等小型设备经常使用触摸屏来代替键盘鼠标的使用,因此在查询和输入界面的文本或者数字输入控件中使用软件盘来代替真正键盘的输入。 软键盘界面:软键盘界面实质上就是一个普通的窗体上面摆放了很多图片按钮&…...

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关…...

HTTP 教程

HTTP/HTTPS 简介 HTTP(Hypertext Transfer Protocol,超文本传输协议)和 HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)是用于在网络中传输信息的两种主要协议。它们定义了客户端和服务器…...

低代码革命:加速云原生时代的端到端产品创新

随着云计算技术的飞速发展,云原生成为了企业数字化转型的重要方向。云原生技术通过容器化、微服务、持续集成/持续部署(CI/CD)等实践,帮助企业构建和运行可扩展的应用程序。然而,云原生技术的复杂性也给开发团队带来了…...

力扣 92.反转链表Ⅱ

力扣《反转链表》系列文章目录 刷题次序,由易到难,一次刷通!!! 题目题解206. 反转链表反转链表的全部 题解192. 反转链表 II反转链表的指定段24. 两两交换链表中的节点两个一组反转链表 题解225. K 个一组翻转链表K …...

2024年最新版TypeScript学习笔记——泛型、接口、枚举、自定义类型等知识点

今天带来的是来自尚硅谷禹神2024年8月最新的TS课程的学习笔记,不得不说禹神讲的是真的超级棒! 文章目录 TS入门JS中的困扰静态类型检查编译TS命令行编译自动化编译 类型检查变量和函数类型检查字面量类型检查 类型推断类型声明声明对象类型声明函数类型…...

java项目之城镇保障性住房管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的城镇保障性住房管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 城镇保障性住房管…...

无人机之航线规划篇

无人机的航线规划是一个复杂但至关重要的过程,它确保了无人机在飞行过程中的安全、高效以及任务的顺利完成。以下是对无人机航线规划的详细解析: 一、定义与目的 无人机航线规划是指依据无人机任务分配,规划出符合安全条件的飞行航线。这一过…...

828 华为云征文|华为 Flexus 云服务器搭建 PicGo 图床

在这个充满非凡意义的日子里,我怀揣着满心的热忱与憧憬,毅然决然地踏上了借助华为 Flexus 云服务器搭建 PicGo 图床的精彩征程。这段旅程,注定充满了无数的挑战与意外之喜,宛如在广袤无垠的数字海洋中勇敢地探寻那神秘而珍贵的宝藏…...

Zabbix 6.4添加中文语言

/usr/share/zabbix/include/locales .inc .phplocale -agrep “zh_CN" yum install langpacks-zh_CN.noarch y y y...

【退役之再次线上部署】Spring Boot + VUE + Nginx + MySQL

这篇博客写在凌晨 4 点 20 分,这个时候我刚线上部署完成 web 项目,自己写的全栈项目 这个点儿,也睡不着了,索性就写篇博客记录一下 一、踩坑实录 这个是 最重要的,所以写在前面 Nginx 配置文件 location location /a…...

Qanything 2 0源码解析系列1:新建知识库

Qanything 2.0源码解析系列1:新建知识库 文章转载自:https://www.feifeixu.top/article/19c76951-5881-4181-bb63-4188b28d3917 😀 前言: qanything所有接口都定义在sanic_api.py中 接口函数定义在同级目录下的handler.py中 新建…...

Redis-01 入门和十大数据类型

Redis支持两种持久化方式:RDB持久化和AOF持久化。 1.RDB持久化是将Redis的数据以快照的形式保存在磁盘上,可以手动触发或通过配置文件设置定时触发。RDB保存的是Redis在某个时间点上的数据快照,可以通过恢复RDB文件来恢复数据。 2.AOF持久化…...

IT行业的现状与未来发展趋势

IT行业的现状与未来发展趋势 近年来,随着科技的迅猛发展,IT行业无疑已经成为全球经济增长的重要驱动力之一。无论是人工智能、大数据,还是云计算和区块链技术,IT行业的创新始终在不断推动着各个领域的变革。 人工智能的广泛应用…...

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

828华为云征文 | 云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台 Jenkins 是一个开源的自动化服务器,用于持续集成(CI)和持续交付(CD)软件项目。它允许开发人员在软件开发过程中自动化各种任务&…...

今日 leetCode 15.三数之和

15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元…...

Games101笔记-二维Transform变换(二)

1、什么是Transform Transform就是通过一个矩阵,进行缩放、旋转、平移等变换 2、缩放、旋转、切变、平移等基础变换 缩放变换: 反射变换: 切变: 绕原点旋转: 以上都是线性变换: 平移变换&#xf…...

【洛谷】AT_abc371_c [ABC371C] Make Isomorphic 的题解

【洛谷】AT_abc371_c [ABC371C] Make Isomorphic 的题解 洛谷传送门 AT传送门 题解 抽象题目,抽象翻译,可能是我太菜了,根本没看懂题目,后面是听大佬讲题才发现,这不就是一题全排列暴力题吗。谔谔,真的…...

全国职业院校技能大赛(大数据赛项)-平台搭建Spark、Scala笔记

Spark作为一个开源的分布式计算框架拥有高效的数据处理能力、丰富的生态系统、多语言支持以及广泛的行业应用。Scala是一种静态类型的编程语言,它结合了面向对象编程和函数式编程的特性,被誉为通用的“大数据语言”。而二者的结合更能迸发出新奇的化学反…...

【Java】JVM基本组成

一、JDK、JRE、JVM JDK:全称 “Java Development Kit” Java 开发工具包,提供 javac编译器、jheap、jconsole 等监控工具; JRE:全称 “Java Runtime Environment” Java 运行环境,提供 class Library 核心类库JVM; …...

解决【WVP服务+ZLMediaKit媒体服务】加入海康摄像头后,能发现设备,播放/点播失败,提示推流超时!

环境介绍 每人搭建的环境不一样,情况不一样,但是原因都是下面几种: wvp配置不当网络端口未放开网络不通 我搭建的环境: WVP服务:windows下,用idea运行的源码 ZLM服务:虚拟机里 问题描述 1.…...

淘宝商品详情接口item_get响应参数解析:props、props_list、prop_img

在电商数据分析和应用开发中,淘宝商品详情接口item_get是一个至关重要的工具。通过该接口,开发者可以高效地获取淘宝平台商品的详细信息,从而优化商品展示、搜索、推荐等功能,提升用户体验和转化率。本文将详细解析item_get接口的…...

Android使用OpenCV 4.5.0实现扑克牌识别(源码分享)

一、显示效果展示 二、OpenCV 4.5.0 OpenCV 4.5.0是OpenCV(Open Source Computer Vision Library,开源计算机视觉库)的一个重要更新版本,该版本在多个方面进行了优化和新增了多项功能。 三、ONNX模型 ONNX(Open Neu…...

Pandas_iloc_loc_哪个是inclusive哪个是exclusive

iloc 和 loc 包括不包括结尾写的那个行(列)? 不一样! iloc[istart:iend] exclusive on iend 不包括结尾那行(列)! loc[start:end] inclusive on end 包括结尾那行(列)&am…...

python是什么语言写的

Python是一种计算机程序设计语言。是一种面向对象的动态类型语言。现今Python语言很火,可有人提问,这么火的语言它的底层又是什么语言编写的呢? python是C语言编写的,它有很多包也是用C语言写的。 所以说,C语言还是很…...

python编程,把所有子目录和文件输出到文本文件

要将所有子目录和文件输出到文本文件,你可以使用Python的os模块来遍历目录结构,并将结果写入文件。以下是一个简单的Python脚本示例,它会递归地遍历指定目录,并将每个子目录和文件的相对路径写入到一个文本文件中: im…...

使用 IntelliJ IDEA 连接到达梦数据库(DM)

前言 达梦数据库是一款国产的关系型数据库管理系统,因其高性能和稳定性而被广泛应用于政府、金融等多个领域。本文将详细介绍如何在 IntelliJ IDEA 中配置并连接到达梦数据库。 准备工作 获取达梦JDBC驱动: 访问达梦在线服务平台网站或通过其他官方渠道…...

【Python报错已解决】AttributeError: ‘WindowsPath‘ object has no attribute ‘rstrip‘

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 专栏介绍 在软件开发和日常使用中,BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

Java中的事件(动作监听-ActionListener)

(一)、ActionListener接口 ActionListener接口用于处理用户界面上的动作事件,例如:按钮点击、菜单选择等。实现ActionListener接口需要重写actionPerformed(ActionEvent e)方法,该方法会在动作发生时被调用。 &#…...

STM32篇:开发环境安装

编程语言:C语言 需要安装的软件有两个:Keil5 和 STM32CubeMX 一.Keil5 的安装 使用 Keil4 写 STM32 代码其实也是可以,但需要很复杂的配置,不建议新手操作。 比较推荐 Keil5 编写 STM32 ,只需要一些简单的设置就可…...