-
捕捉用户向DataGridView的单元格输入不正确值时发生的错误
2010-05-05 14:15:00当用户没有输入正确的值时就会有对话框显示,对于用户来说可能根本就不明白为什么会出现,所以最好不要出现这样的对话框。禁止这种对话框出现,设定DataError事件。具体的说明请参照「DataGridView的错误对话」。...比如说,向定义为数字型列的单元格输入英文字母时,「DataGridView 的既定错误对话框」对话框就会表示出来,当例外发生时通知用户的一种方式。当用户没有输入正确的值时就会有对话框显示,对于用户来说可能根本就不明白为什么会出现,所以最好不要出现这样的对话框。
禁止这种对话框出现,设定DataError事件。具体的说明请参照「DataGridView的错误对话」。
下面的代码是通过设定DataError事件,表示出单独的对话框。
[VB.NET]
'DataError事件处理器
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
If Not (e.Exception Is Nothing) Then
MessageBox.Show(Me, _
String.Format("({0}, {1}) 的单元格有错误。" + _
vbCrLf + vbCrLf + "说明: {2}", _
e.ColumnIndex, e.RowIndex, e.Exception.Message), _
"发生错误", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End If
End Sub
[C#]//DataError事件处理器
private void DataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
if (e.Exception != null)
{
MessageBox.Show(this,
string.Format("({0}, {1}) 的单元格有错误。/n/n说明: {2}",
e.ColumnIndex, e.RowIndex, e.Exception.Message),
"错误发生",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
补充:使用DataError事件处理器可以取得DataGridViewDataErrorEventArgs对象的Context属性,这样就可以知道在什么状态下发生错误。详细的说明请参照「DataGridViewDataErrorContexts 枚举」。还有,通过设置ThrowException属性为True,DataError事件处理器执行完后,就会出现Throw例外事件。
用户向单元输入不正确的值时,自动还原为原来的值
DataError事件处理器取得的DataGridViewDataErrorEventArgs对象的Cancel属性为False时,用户向单元格输入的值不正确时也不会出现错误,但会还原为原来的值。
[VB.NET]
'DataError事件处理器
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
e.Cancel = False
End Sub
[C#]//DataError事件处理器
private void DataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
e.Cancel = false;
}
使用DataError事件处理器执行DataGridView.CancelEdit方法可以使值还原为原来的值。设置DataGridViewDataErrorEventArgs对象的Cancel属性为False时,编辑方式终了,但触发CancelEdit方法时,编辑方式就不能终了。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GuanXX/archive/2009/03/25/4024233.aspx
-
捕捉用户向DataGridView的单元格输入不正确值时发生的错误
2009-12-08 21:08:00当用户没有输入正确的值时就会有对话框显示,对于用户来说可能根本就不明白为什么会出现,所以最好不要出现这样的对话框。禁止这种对话框出现,设定DataError事件。具体的说明请参照「DataGridView的错误对话」。...比如说,向定义为数字型列的单元格输入英文字母时,「DataGridView 的既定错误对话框」对话框就会表示出来,当例外发生时通知用户的一种方式。当用户没有输入正确的值时就会有对话框显示,对于用户来说可能根本就不明白为什么会出现,所以最好不要出现这样的对话框。
禁止这种对话框出现,设定DataError事件。具体的说明请参照「DataGridView的错误对话」。
下面的代码是通过设定DataError事件,表示出单独的对话框。
[VB.NET]
'DataError事件处理器
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
If Not (e.Exception Is Nothing) Then
MessageBox.Show(Me, _
String.Format("({0}, {1}) 的单元格有错误。" + _
vbCrLf + vbCrLf + "说明: {2}", _
e.ColumnIndex, e.RowIndex, e.Exception.Message), _
"发生错误", _
MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End If
End Sub
[C#]//DataError事件处理器
private void DataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
if (e.Exception != null)
{
MessageBox.Show(this,
string.Format("({0}, {1}) 的单元格有错误。/n/n说明: {2}",
e.ColumnIndex, e.RowIndex, e.Exception.Message),
"错误发生",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
补充:使用DataError事件处理器可以取得DataGridViewDataErrorEventArgs对象的Context属性,这样就可以知道在什么状态下发生错误。详细的说明请参照「DataGridViewDataErrorContexts 枚举」。还有,通过设置ThrowException属性为True,DataError事件处理器执行完后,就会出现Throw例外事件。
用户向单元输入不正确的值时,自动还原为原来的值
DataError事件处理器取得的DataGridViewDataErrorEventArgs对象的Cancel属性为False时,用户向单元格输入的值不正确时也不会出现错误,但会还原为原来的值。
[VB.NET]
'DataError事件处理器
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
e.Cancel = False
End Sub
[C#]//DataError事件处理器
private void DataGridView1_DataError(object sender,
DataGridViewDataErrorEventArgs e)
{
e.Cancel = false;
}
使用DataError事件处理器执行DataGridView.CancelEdit方法可以使值还原为原来的值。设置DataGridViewDataErrorEventArgs对象的Cancel属性为False时,编辑方式终了,但触发CancelEdit方法时,编辑方式就不能终了。 -
统计字符串中字母出现的次数并列出出现次数最多的字母
2020-10-26 01:05:03解题思路:用户输入的一段英文字符中可能包含小写字母、大写字母以及其他字符,所以需要先把可能的大写字母转化为对应的小写字母;然后是统计各字母出现的个数,如果直接使用if语句和switch的话,程序量会很大,所以...题目:实现一个统计一段文字中英文字母 a-z 各出现的次数并列出出现次数最多的字母的程序。
用户输入一段英文,程序统计英文字母 a-z(大写当小写处理)各出现的次数、并列出出现频率最多的字母以及次数。
要求:计数代码段不得使用 20 个或以上的 if 语句。
解题思路:用户输入的一段英文字符中可能包含小写字母、大写字母以及其他字符,所以需要先把可能的大写字母转化为对应的小写字母;然后是统计各字母出现的个数,如果直接使用if语句和switch的话,程序量会很大,所以考虑用数组。先看主函数
int main() { char str1[500]; //用户输出的字符串长度不大于500 printf("请输入一段英文字符串:\n"); gets(str1); //用户输入 xiaoxie(str1); //把可能的大写转化为小写 tongji(str1); //程序主要部分:统计 return 0; }
在主函数中,我们需要再定义两个函数:xiaoxie() 和 tongji() ,如下:
函数一:xiaoxie()
/************************ 函数:void xiaoxie(char *str0) 功能:把字符串中的大写字母转化为小写字母 参数:字符串 char *str0 返回值:无 *************************/ void xiaoxie(char *str0) { int count = strlen(str0); //获得字符串str0的长度 for(int i=0;i<count;i++) { if(str0[i]>='A' && str0[i]<='Z') str0[i] = str0[i] + 32; //大写字母的ASCII码加32即为对应的小写字母 } }
函数二:tongji() 统计函数为这个程序的重点,其内部又可以分成几个部分,如下:
1)统计各字母出现的个数
这里定义了两个数组来存放字母a-z和它出现的次数,其中zimu[]为字符串数组,cishu[]为普通数组,通过两个for循环嵌套来实现对字母出现次数的统计,第一个for循环是从用户输入的第一个字符依次到最后一个字符,第二个for循环是依次判断该字符是属于a-z中对应的哪个字母
//统计各字母出现的个数 char zimu[26]="abcdefghijklmnopqrstuvwxyz"; int cishu[26]={0}; int count = strlen(str0); for(int i=0;i<count;i++) { for(int j=0;j<26;j++) { if(str0[i]==zimu[j]) cishu[j]++; } }
2)打印出各字母出现的个数到屏幕上
printf("统计各字母出现的个数:\n"); for(int i=0;i<26;i++) { printf("%c:%d\t",zimu[i],cishu[i]); if((i+1)%6==0) printf("\n"); //每6个字母就换行 }
3)统计出现频率最高的字母及其次数
这是这个tongji()函数的重点,我认为也是难点
如果只是简单统计一个出现次数最多的字母,程序很简单,如下://统计出现频率最高的字母 int t,max=cishu[0]; for(int i=0;i<26;i++) { if(max<cishu[i]) { max = cishu[i]; t = i; } } printf("\n出现次数最多的字母是:%c,共出现%d次\n",zimu[t],max);
但是当最高次数的字母有多个时,它只能输出最前面一个
这显然是不行的,因此还需要改进,如下:int t,max=cishu[0]; int j=0,c=0,a[1]={0}; for(int i=0;i<26;i++) { if(max<=cishu[i]) { if(max==cishu[i]) { a[j]=i; //出现字母次数相同时记下对应的i(存放到数组) j++; //j为数组a[]组索引 } else //即max<cishu[i] { max = cishu[i]; t = i; //更新max对应的i c = j; //当旧的(数组存放的)字母次数不等于新的字母次数时,记下对应的j } } } printf("\n出现次数最多的字母是:%c",zimu[t]); for(int i=c;i<j;i++) { printf("、%c",zimu[a[i]]); } printf(",共出现%d次\n",max);
改进后和之前最大的不同是,加了个统计出现相同次数的字母,即
if(max==cishu[i]) { a[j]=i; j++; }
完整tongji()函数如下:
/************************ 函数:void tongji(char *str0) 功能:统计字母a-z出现的次数,并得到出现频率最高的字母及次数 参数:字符串 char *str0 返回值:无 *************************/ void tongji(char *str0) { char zimu[26]="abcdefghijklmnopqrstuvwxyz"; int cishu[26]={0}; int count = strlen(str0); for(int i=0;i<count;i++) { for(int j=0;j<26;j++) { if(str0[i]==zimu[j]) cishu[j]++; } } printf("统计各字母出现的个数:\n"); for(int i=0;i<26;i++) { printf("%c:%d\t",zimu[i],cishu[i]); if((i+1)%6==0) printf("\n"); } int t,max=cishu[0]; int j=0,c=0,a[1]={0}; for(int i=0;i<26;i++) { if(max<=cishu[i]) { if(max==cishu[i]) { a[j]=i; j++; } else { max = cishu[i]; t = i; c = j; } } } printf("\n出现次数最多的字母是:%c",zimu[t]); for(int i=c;i<j;i++) { printf("、%c",zimu[a[i]]); } printf(",共出现%d次\n",max); }
程序完整代码
#include <stdio.h> #include <string.h> void xiaoxie(char *str0) { int count = strlen(str0); for(int i=0;i<count;i++) { if(str0[i]>='A' && str0[i]<='Z') str0[i] = str0[i] + 32; } } void tongji(char *str0) { char zimu[26]="abcdefghijklmnopqrstuvwxyz"; int cishu[26]={0}; int count = strlen(str0); for(int i=0;i<count;i++) { for(int j=0;j<26;j++) { if(str0[i]==zimu[j]) cishu[j]++; } } printf("统计各字母出现的个数:\n"); for(int i=0;i<26;i++) { printf("%c:%d\t",zimu[i],cishu[i]); if((i+1)%6==0) printf("\n"); } int t,max=cishu[0]; int j=0,c=0,a[1]={0}; for(int i=0;i<26;i++) { if(max<=cishu[i]) { if(max==cishu[i]) { a[j]=i; j++; } else { max = cishu[i]; t = i; c = j; } } } printf("\n出现次数最多的字母是:%c",zimu[t]); for(int i=c;i<j;i++) { printf("、%c",zimu[a[i]]); } printf(",共出现%d次\n",max); } int main() { char str1[500]; printf("请输入一段英文字符串:\n"); gets(str1); xiaoxie(str1); tongji(str1); return 0; }
运行效果如下:
-
demo测试是什么意思_打ckn是什么意思污的 输入ckn测试纯洁度准吗
2020-12-24 01:21:29最近抖音还有一些贴吧和论坛上面,大家都在说一个ckn测试纯洁度的梗,这个ckn测试其实很早之就有了,这个会根据用户输入偏好,出现不同的词汇。打ckn是什么意思污的“ckn”是一个很早之前就在网上流传的纯洁度小测试...最近抖音还有一些贴吧和论坛上面,大家都在说一个ckn测试纯洁度的梗,这个ckn测试其实很早之就有了,这个会根据用户输入偏好,出现不同的词汇。
打ckn是什么意思污的
“ckn”是一个很早之前就在网上流传的纯洁度小测试,其实并没有什么实质性的意思,而是根据每个人输入习惯或输入法的不同,当你在键盘上输入“ckn”这三个字母的时候,就会出现各种文字。
比如:“才可能、吃垮你、丑哭了”,或者比较污的就是“吃口奶、草哭你”等等。
输入ckn测试纯洁度准吗
现在输入法基本都是有联想的功能,打字很多人可能都习惯用首字来联想输入,所以这个跟你的打字输入的习惯有一定的关系。毕竟你日常的输入法会根据你日常的用语习惯给你匹配相关的词,一般都是你用的频率毕竟高的词,如果是你经常打一些污的词汇的话,也许会出现不纯洁的词,准确性的话只能说有些概率吧,这个大家娱乐一下就行了,也不用当真的哈。
输入ckn为什么显示不一样
这个其实跟输入法有关系,不同的输入法显示的结果可能都不一样。
-
从浏览器输入一个 url 到页面渲染,涉及的知识点及优化点
2020-12-29 16:23:59浏览器会将地址栏中输入的文字传给默认的搜索引擎。我就经常用 Chrome 的此特性快速 google 搜索。 什么是合法的 URL 格式?也就是 URL 遵循的语法。大多数 url 都建立在以下 9 部分组成的结构上: <p>... -
构造高度自适应的textarea
2015-12-28 22:17:00高度自适应的textarea,这个需求还是比较常见的,随着用户的输入textarea的高度自动变化,这样输入较少的时候可以节省空间,输入多的时候可以不出现滚动条,让内容尽可能的展现在用户的视线内。 可惜的是textarea... -
当你系统崩溃时教你如何重装系统
2010-10-17 23:13:57在安装过程中可能会出现没有微软签名的对话框,不要理它,直接点“是” ;如果你连Win2k的驱动也没有,那就只有另一个办法了,先找出你的设备的生产厂家和型号,一般说明 书上或板、卡上面都把厂家和型号打印上去... -
Android 常用高级控件(自动完成文本框、滑块与进度条、选项卡、画廊控件、下拉列表控件)
2020-10-24 16:09:07自动完成文本框的外观与图片文本框没有任何区别,只是当用户输入某些文字时,会自动出现下拉菜单显示与用户输入文字相关的信息,用户直接单击需要的文字便可自动填写到文本控件中。使用AutoCompleteTextView很简单,... -
wallop 的一个bug 的产生条件
2005-01-19 12:53:00作者:慕晓 2005.1.19...当用户点击 "addtext" 按钮的时候,如果网络速度较慢,输入文字对话框不能及时显示,这个时候如果用户再次点击 "addtext" 按钮的话,就会出现黑屏现象。造成这个现象的原因应该是程序内部的bug -
excel的使用
2012-11-25 17:06:01输入完毕之后,再次按下键盘上的Ctrl键,然后使用鼠标左键单击所选择的多个工作表,解除这些工作表的联系,否则在一张表单中输入的数据会接着出现在选中的其它工作表内。(6) 不连续单元格填充同一数据选中一个... -
wps2000最经典的办公软件+注册码
2013-08-19 01:54:29以往的WPS 着重处理文字,而现在的WPS 2000 极大地丰富了文字处理软件的内涵,它不仅有极强的文字处理功能,更重要的是它能将多种对象的处理有效地融为一体。譬如,现在数据库文件格式众多,如 dBase 文件、FoxPro ... -
这是一段由自定义按钮添加的文字</span>`) } }) // 创建一个 button var btn = new window.UE.ui.Button({ // 按钮的名字 name: uiName, // 提示 title: '鼠标悬停时的提示文字', // 需要添加的额外...
-
密码管家 - 最强大的密码管理助手
2013-09-22 15:06:262. 修正了当删除记录时提示框中的文字换行显示异常的问题。 [改进] 1. 重写了界面适配部分的程序逻辑,从而在更多屏幕分辨率和屏幕密度不同的终端上正确显示。 2. 为配合上一步的修改重新设计制作了全部的图片资源。... -
不明飞行物-源码
2021-02-16 05:31:40例如,当用户输入1/13/2010时,表中将出现三个结果。 一个完全动态的表允许好奇。 用户还可以在各自的位置查看UFO选址。 加利福尼亚州El Cajon在此演示中报告了5个UFO选址。 该网站允许用户浏览UFO选址并自己做出... -
密码管家 - 最强大的密码管理助手(2012年2月2日重新上传v2.5.0)
2012-02-02 19:02:403. 为名称过长的记录增加了文字滚动效果,方便用户看清全部内容。 4. 改进了记录列表的翻页方式,将较难的划屏操作改为了屏幕内方向箭头的点击。 5. 为记录列表增加了页码显示。 6. 对'自动生成密码'页面的布局进行... -
BitWare 用modem发传真打电话的软件
2010-04-28 08:40:34当电子邮件用户接收到的传真实际上是一个附件。用户应配置电子邮件软件以便双击即可激活该附件,运行 VIEWFAX.EXE。 BitWare 当前支持 CCMail(或其它 VIM 兼容系统)、MS-Mail(或其它 MAPI 相容系统) 及 InTouch ... -
Web性能领域常见的专业术语
2021-01-08 14:45:51但是我们不知道浏览器第一次可以响应用户输入是什么时候。我们不知道网页的“最小可交互时间”是多少,最小可交互时间是说网页的首屏已经达到了可交互的状态了,但整个页面可能还没达到。从名字也可以... -
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
2011-01-28 17:02:0816.我们拖动标签一角的蓝点,将全部文字显示出来。 17.再次按下运行按钮,便会出现helloworld。 到这里helloworld 程序便完成了。 Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其中有程序的.exe ... -
一款超强的图形系统—VB源码-source-vg7.23
2008-08-27 12:09:34由于接口提供了完全的COM类库,当程序员在某个图形对象名后输入小数点时,立即出现下拉列表,里面列出了全部可用的属性和函数。图形文件采用标准XML而不是不可知的二进制格式,工作起来更放心。 扩展性: Visual ... -
一款超强的图形系统—C#源码C#vb.net_source_vg7.23
2008-08-27 11:52:11由于接口提供了完全的COM类库,当程序员在某个图形对象名后输入小数点时,立即出现下拉列表,里面列出了全部可用的属性和函数。图形文件采用标准XML而不是不可知的二进制格式,工作起来更放心。 扩展性: Visual ... -
JavaScript-性能优化,函数节流(throttle)与函数去抖(debounce)
2017-05-04 10:50:00这在本地服务器测试还好,如果我把它拿到运行环境,很可能出现提示功能卡顿,甚至没等提示出现用户就输入完毕的现象。毕竟大家现在打字都很快啊。于是我找到了一个新技能,函数节流 & 函数去抖。throttle 和 ... -
fixed 定位 苹果手机输入框触发时内容全部隐藏
2016-07-28 10:22:00问题出现在东钿微信公众号用户注册页面 页面中只有两个输入框 页面没有超过一屏,悬浮按钮也要出现在本页面 ,开始布局页面的时候没什么问题,然后我在我自己手机上测试 ,输入手机号码,非常奇怪的问题出现了,当... -
一款定时/循环执行任务的绿色小软件
2019-02-23 17:28:41一款定时/循环执行任务的绿色小软件,可以用来定时执行程序、DOS命令、从HTTP服务器下载程序运行、结束进程、 模拟按键、发送EMAIL、网络唤醒、消息提示、关机、重启、注销、锁定、待机等...334 等待用户输入验证信息 -
SQL Server 2008数据库设计与实现(关系数据库实现的通关宝典)--随书源代码
2013-02-06 12:04:00Scott住在佛罗里达的Wellington,当他不坐在计算机前时,你会发现他和自己的家人在一起,或者骑着他的雅马哈摩托车轰鸣在当地的摩托车越野赛赛道上。你可以通过ScottKlein@SqlXml.com联系他。 目录 封面 -17 封底... -
毕业设计_淘宝天猫优惠券.zip
2019-07-24 17:48:429.然后是意见反馈功能,因为不同的手机展示的界面有可能不同,App或许也有未知的一些bug,当用户发现bug时就可以通过该功能反馈给客服,App管理员可以在后台查看到用户反馈的信息。 10.在我的收藏列表里面,有用户在... -
VC之美化界面篇本文专题讨论VC中的界面美化,适用于具有中等VC水平的读者。读者最好具有以下VC基础:
2009-06-17 10:17:32呵呵,不好意思,这并不是真的Windows按钮,它只是一个假的空框子,当用户在按钮上点击鼠标时,放心,什么事情都不会发生。 2.2 Windows的幕后绘图操作 在Window中,如果所有的界面操作都由用户代码来实现,那将是... -
虚拟键盘挡住控件
2014-08-07 16:26:00当再次得到焦点时候可能又发生同样的情况。这是非常糟糕的用户体验,所以需要对其改进。 虚拟键盘的弹出只非常暴力的,它直接遮在页面上出现,不会改变页面尺寸,也不会触发resize事件。而且这是系统级的东西,程序...