ComboBox 强制转换为大写的方法

最近遇到如何将输入在组合框(ComboBox)中的英文字符转换为大写的问题。

在TextBox中,有CharacterCasing属性,直接设置为Upper即可。但是在ComboBox中没有此属性,所以要另找其他方法。

直觉告诉我,一定是在KeyDown, KeyPress, KeyUp这三个事件中找到突破口,研究下去果然如此。

三者触发的前后顺序如上所示,KeyDown和KeyPress,字符接收,未赋值到文本框里,而KeyUp的时候已经赋值了,所以应该从前两者入手。

KeyDown里,提供有KeyValue, KeyData, KeyCode,第一个是整型数,后两个返回Keys 枚举类型。且三者都是只读属性,无法修改。

KeyPress里,提供有KeyChar属性,这是个可读写属性,储存的是按下的字符。那么将其修改,在赋值前转换成大写,是否就可以了呢?

事实证明,当然是可以的啦不然我也不会写这博客啦。

1      private void cbTest_KeyPress(object sender, KeyPressEventArgs e)
2         {
3             e.KeyChar = (e.KeyChar.ToString().ToUpper().ToCharArray())[0];
4         }

注意,这里处理的是单独字符的问题,如果是组合键的话,需要其他方法。

// 20130419 修改代码段,于公司源代码看到前辈如此简洁,泪流满面

1 private void cbTest_KeyPress(object sender, KeyPressEventArgs e)
2 {
3     e.KeyChar = char.ToUpper(e.KeyChar);
4 }

 

下面就是找到的一些资料,随便看看呗。

 

KeyPress 和KeyDown 、KeyPress之间的区别


1、KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符 
2、KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键) 
3、KeyPress 只能捕获单个字符 
4、KeyDown 和KeyUp 可以捕获组合键。 
5、KeyPress 可以捕获单个字符的大小写 
6、KeyDown和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能判断单个字符的大小写。 
7、KeyPress 不区分小键盘和主键盘的数字字符。 
8、KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。 
9、其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。

转载于:https://www.cnblogs.com/kingsleylam/archive/2013/03/11/2954883.html

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

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

相关文章

opendds开发指南中文版_最强的开发者技术路线图已经更新到 2020 GitHub 超 118k还有中文...

想必大家都知道,学习路线图是学习一门新技术的入门指南,让我们对技术有一个大概的了解,并且在学习感到困惑时被指导。所谓不求最好,但求最全。今天在在就给大家带来了一个国外大牛开源的项目 — 「developer-roadmap」&#xff0c…

数据的交换输出【杭电-2016】 附题

/* 数据的交换输出 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 54495 Accepted Submission(s): 20688 Problem Description 输入n(n<100)个数。找出当中最小的数&#xff0c;将它与最前面的数交换后输出…

进程速查手册

进程速查手册 什么是系统进程&#xff1f;它能做什么&#xff1f; 进程是程序在计算机上的一次执行活动。当你运行一个程序&#xff0c;你就启动了一个进程。显然&#xff0c;程序是死的(静态的)&#xff0c;进程是活的(动态的)。进程可以分为系统进程和用户进程。凡是用于完成…

android画布一闪一闪的,解决Android SurfaceView绘制触摸轨迹闪烁问题的方法

本文分享了解决SurfaceView触摸轨迹闪烁问题的方法&#xff0c;供大家参考&#xff0c;具体内容如下第一种解决SurfaceView触摸轨迹闪烁问题的方法&#xff1a;由于SurfaceView使用双缓存机制&#xff0c;两张画布轮流显示到屏幕上。那么&#xff0c;要存储触摸轨迹并避免两张画…

iOS APP网络分析之rvictl(可以捕捉除了Wifi以外的网络类型)

iOS应用&#xff08;包括移动应用&#xff09;的网络分析&#xff0c;一般采用将移动设备上的流量导入到PC机上&#xff0c;利用PC上成熟的数据包分析工具例如wireshark等来进行分析的方法。 总的来说&#xff0c;有以下三种方法&#xff1a;一、在PC上设置网络共享&#xff0c…

开端2(三)

选择行数, if (efGridResult.EFChoiceCount < 1)设为选中,,this.efGridResult[this.efGridResult.Rows.Count - 1, "check_option"] true;取数据, inInfo.SetBlockVal(this.efGridResult);弹出菜单 this.efGridResult.EFAllowMenuNew false;新增一空行 th…

利用DBMS_ADVISOR.TUNE_MVIEW包生成物化视图创建语句

不少人大概和我一样在创建物化视图的时候会犯头痛&#xff0c;怎样合理的改写SQL语句以及添加物化视图日志需要经过慎重精密的考虑。有了DBMS_ADVISOR.TUNE_MVIEW存储过程这个帮手后&#xff0c;极大地方便了DBA或应用设计人员创建和优化物化视图。该TUNE_MVIEW存储过程可以做到…

oracle批量update数据_东方国信大数据面试真题

东方国信学长1Hadoop工程师笔试题&#xff08;金融事业部&#xff09;1&#xff09;技术基础题&#xff08;共十题&#xff0c;每题5分&#xff09;&#xff08;1&#xff09;列举在Linux系统下可以在看系统各项性能的工具&#xff08;区分CPU、内存、硬盘、网络等&#xff09;…

android 搜狗地图包名,搜狗地图(免费语音导航)

权限信息 读取您的USB存储设备中的内容 android.permission.REQUEST_INSTALL_PACKAComGES android.permission.RECEIVE_USER_PRESENT 完全的网络访问权限 android.permission.ACCESS_BACKGROUND_LOCATION 大致位置(基于网络) 精确位置(基于GPS和网络) 查看网络连接 修改或删除您…

eclipse定制化配置调优、初始化配置指南、可以解决启动慢等问题

配置eclipse的jvm参数 打开eclipse根目录下的eclipse.ini在最后面加上如下的jvm参数 -Xms400m -Xmx1400m -XX:NewSize128m -XX:MaxNewSize512m -XX:PermSize96m -XX:MaxPermSize128m -server -XX:CompileThreshold100 -XX:UseParNewGC -XX:UseConcMarkSweepGC -XX:CMSInitiatin…

SEC SOC Test Board 在WIN 7下的安装

首先找到“设备和打印机”点击打开 如果你插上了USB线&#xff0c;会看到&#xff0c;安装不成功时会有个“&#xff01;” 双击它&#xff0c;出现 点击“属性”&#xff0c;出现 点击“改变设置”&#xff0c;出现 点击“更新驱动程序”&#xff0c;出现 点击进去&#xff0c…

ora-00054:resource busy and acquire with nowait specified解决方法

当某个数据库用户在数据库中插入、更新、删除一个表的数据&#xff0c;或者增加一个表的主键时或者表的索引时&#xff0c;常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行&#xff08;或者事务已经被锁&#xff09…

吴枫 python小课怎么样_编程中,有哪些好的习惯从一开始就值得坚持?

电影《喜剧之王》里&#xff0c;周星驰饰演的尹天仇&#xff0c;是一个渴望成为真正的演员&#xff0c;却不断沦为落魄跑龙套的小人物。即便如此&#xff0c;他对演戏的态度始终认真而可敬。他每天不但锲而不舍寻找演戏机会&#xff0c;还在街坊福利社开了个戏剧训练班&#xf…

android常用控件实验报告,ui设计实验报告.doc

ui设计实验报告ui设计实验报告篇一&#xff1a;UI设计实验报告实验项目四&#xff1a;UI设计一、 实验目的和要求1、熟练运用Eclipse软件中的swing设计。2、掌握UI编写的软件。3、能都熟练的进行操作&#xff0c;理解每个按钮的含义并懂得修改参数。4、理解其幕后的Java代码。二…

星期三,今天早上上了四节JS课程,下午听健康讲座,晚上装系统

星期三&#xff0c;今天早上上了四节JS课程&#xff0c;下午听健康讲座&#xff0c;晚上装系统。我想说装系统是最浪费时间的&#xff0c;以前大一的时候&#xff0c;有一段时间喜欢上装系统&#xff0c;我去有时候一个系统装了两三天&#xff0c;因为有很多问题。 ~ 后面就不研…

在欲而无欲,居尘不染尘

僧人竺法深在东晋简文帝处作客&#xff0c;刘尹问&#xff1a;「法师是学道之人&#xff0c;为什么要来官宦之门中走动&#xff1f;」竺法深回答说&#xff1a;「你自见这是朱门高第&#xff0c;在贫道眼里&#xff0c;同走在茅屋草舍间并无任何差别。」   法师的境界&#x…

设置width不生效_关于padding被计算在width中问题——box-sizing相关

前一阵子遇到一个小问题&#xff0c;在同样的样式&#xff08;主要是宽高边距之类的&#xff09;条件下&#xff0c;DIV在移动端和PC端的宽度不一样&#xff0c;排除了绝大多数样式的问题&#xff0c;但是有个比较陌生&#xff0c;就是box-sizing&#xff0c;其实经常看到&…

C# 遍历List 并删除某个元素

1、我们选择用for循环&#xff0c; for(int i0;i { if(list[i]) { list.RemoveAt(i); } } 如果这样循环&#xff0c;肯定不对&#xff0c; {A B C D E F G H} 假设当前遍历到D&#xff08;i3&#xff09;,移除&#xff0c;接着遍历i4(F), 此时跳过了E&#xff08;i3&a…

android studio不能更新代码,解决Android Studio 和 Android SDK Manager 无法在线更新的问题....

升级时提示 Connection failed. Please check your network connection and try again修改安装目录下bin\studio.exe.vmoptions文件,如E:\Android\android-studio\bin\studio.exe.vmoptions添加内容:-Djava.net.preferIPv4Stacktrue-Didea.updates.urlhttp://dl.google.com/and…

我的Python成长之路---第六天---Python基础(19)---2016年2月20日(晴)

shelve模块shelve模块是pickle模块的扩展&#xff0c;可以通过key&#xff0c;value的方式访问pickle持久化保存的数据持久化保存&#xff1a;12345678910111213import shelvesw shelve.open(shelve_test.pkl) # 创建shelve对象name [13, 14, 145, 6] # 创建一个列表dist_tes…