开发工具:
文件大小: 77kb
下载次数: 0
上传时间: 2007-11-27
详细说明: 实现功能:
模拟微软计算器界面,实现四则混合运算
1.键盘输入(KeyUp事件)
2.无焦点(按钮失去焦点)
3.实现优先级运算。比如直接输入1-2*3=-5,而不是微软计算器的-3
4.使用操作工厂,使用接口
5.实现菜单里的复制粘贴功能
6.可视化文本框
7.实现中间操作结果显示
8.正则表达式验证输入是否为数字
9.小数点个数校验
10.使用发消息_Flag实现操作符状态的判定及转换
部分注释预览:
失去焦点:
private void text_display_GotFocus(object sender, EventArgs e)
{ /*
* 文本框的“获取焦点”事件发生时执行的方法。每次获得焦 点时,就会执行此方法,使之马上失去焦点。
*
* 当某控件的Enable属性变为False的时候,它的焦点将转移到TabIndex属性值比它大1的控件上。
* 这时,如果有多个控件的TabIndex属性值同时比它大1,鼠标点击按钮或敲击键盘时候会发出“咚”的一声。
* 故在本程序中,将label_m控件的TabIndex设为1,其它的全部设为0,因此所有的控件在不可用时焦点都会转移到label_m上,
* 因为label_m没有Click和KeyUp事件,所以不会出错。
* 这样就实现了全局无焦点的功能。
*
*/
text_display.Enabled = false; //先使文本框不可用,这时焦点转移到TabIndex比文本框大的下一个控件上
text_display.Enabled = true; //再使文本框可用,这时焦点不会返回。
}
KeyUp事件:
else if (e.KeyCode == Keys.NumPad1 || e.KeyCode == Keys.D1)
{
/* 当窗体的某个控件触发了其本身的KeyUp事件之后,
* 将会调用keyUp()方法,并判断是哪个按键
* 如果是大键盘或者是小键盘的1时,便调用num_Click()方法。
* 参数是no_1和e。
* 在这里的no_1指的是按钮no_1,e是KeyUp事件
* no_1是按钮,参数格式正确;而e是KeyUp事件,也是事件的一种。KeyEventHandler当然也是EventHandler的一部分。
* 所以调用了之num_Click()后一切按照no_1按钮事件的操作执行
* 所以no_1按钮的这一句
* this.no_1.KeyUp += new System.Windows.Forms.KeyEventHandler(this.num_Click);
* 可以不写
*/
num_Click(no_1, e);
}
小数点点击的校验:
private void dot_Click(object sender, EventArgs e)
{
if (!dotFlag) //没点击的情况下
{
if (operFlag) //如果点击了运算符,就将文本换为"0.",并将小数点设为已点击
{
text_display.Text = "0.";
dotFlag = true;
}
else if (text_display.Text.Equals("0.")) //如果没有点击运算符,切当前文本是"0.",便保持现状但将小数点设为已点击
{
dotFlag = true;
}
else if (text_display.Text.Equals("0") || text_display.Text.Equals(""))
{
text_display.Text = "0.";
dotFlag = true;
}
else //其他情况直接添加并将小数点设为已点击
{
text_display.Text = text_display.Text + ".";
dotFlag = true;
}
}
else //如果已点击则什么也不做
{
}
enterFlag = false;
label_m.Focus(); //键盘按键之后焦点由下面的各个_GotFocus()方法控制;鼠标点击之后的焦点有这条语句控制,同样使焦点转移到label_m上。
}
...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.