分享我的第一个完整的C#winform小程序,只为记录!
写这个小程序的时候,我连语法还都不怎么会,只能边写边学,拖控件、设置属性也还是临时学会的。所以会有比较大的缺陷,而且使用的语法都是比较简单的,没有涉及稍微复杂一点点的代码。因为初学,所以很多地方不完善,已经做到当时尽可能的最好了。
写这个程序的时候一开始真的是一点头绪都没有的,当时一片空白,无从下手,但是最终做出来之后那种自豪感是不言而喻的。
首先上界面图:
先把各控件全部拖放好,排列整齐,为了美观,背景什么的稍微做了点改动,不至于太过单调。
因为按钮比较多,所以按钮起名要稍微注意些,便于识别。
思路:
1. 首先需要把按钮按下的各个按键文本显示到文本框中
2. 在输入第一个按键的时候需要考虑的是必须是数字才行,否则无效(按下小数点,则默认为0.)
3. 当按下运算符之后保存运算符之前的第一个操作数
4. 当按下等号之后保存等号之前的第二个操作数
5. 第三和四步都可以使用 SubString() 方法来截取字符串然后转换成数字
6. 处理完使用鼠标点击只好,键盘的按下只需要托管给点击事件就行了,这样也不必去考虑按下的按键到底是不是数字,规避了其它符号的输入
7. 注册各个按钮的点击事件
注意点:
1. 每个操作数的小数点最多只能有一次,按第二次则无效
2. 除数不能为零
3. 按下等号之后如果继续按操作符,则按照正常逻辑应该是可以连续运算
4. 按了清除键之后,所有全部归为初始化
以下是需要用到的字段
double num1; //记录第一个操作数
double num2; //记录第二个操作数
string str1; //点击运算符之前的文本框内容
string str2; //点击运算符之后的文本框内容
string str3; //记录运算符之后的字符串
bool isSymbool = false; //是否点击过运算符
string symbool = null; //记录符号
bool isPoint = false; //记录是否点过小数点
bool isEqu = false; //记录是否点过等于号,以便按过等于之后按退格键直接全部清除
最简单的一个点击事件个人认为是属于CE按钮的清除事件了,只需要把所有的字段初始化成默认值就行,如下:
//清除键-CE
private void button_CE_Click(object sender, EventArgs e)
{
textBox1.Clear();
isSymbool = false;
num1 = 0;
num2 = 0;
str1 = null;
str2 = null;
isPoint = false;
isEqu = false;
}
看以下代码,数字键0-9的点击事件全部都是一样的写法,唯一区别只是按钮名称修改一下。在做这些之前,需要把每一个按钮的Text属性设置为“0~9、+、-、*、/”
我这里的button_0代表的就是按键0,button_1就是