上一节我们完成了迷你计算器的界面设计,这节我们开始用最简单的方式来实现我们预期的功能。
为什么说是最简单呢?因为还有比较复杂的方式,需要额外展开很多知识点。对初学者我不想一下展开那么多内容,能够最快的看到效果,增强学习信心,我觉得才是现阶段的核心。
我们先来看下界面,看看还需要做哪些处理。
依据这个数学模型:
x □ y = ?
我们的设想是两个输入框分别输入x和y值,中间的下拉框选择 加减乘除 四个符号中的一个,然后点 = 按钮,后面就出结果了。
所以接下来的任务:
直接上图
鼠标点击下拉框,然后点上面的小箭头,弹出的小框框点“编辑项”,然后把对应计算的 +、-、*、/ 每行一个输入进去,再点确定就好了。
然后运行一下程序我们就能看到下拉框已经有值了。当然这种方式肯定不是最好的,但是最简单有效的。更优雅的方式等我们以后专门讲下拉框控件的时候再展开。
为控件添加事件响应的基本流程,我们在之前的 案例导航 中已经介绍过了。这个操作以后会经常用到,大家需要熟练运用。这里再最后动图演示一次,以后就直接截图了。
鼠标点击=按钮,切换到事件栏目,选择Click(点击)事件,双击自动生成代码。
对按钮点击事件,VS还有一种快捷的方式,就是直接在按钮上双击,就自动生成代码了。已经生成过的,会自动定位。
另外这里再补充一个好习惯,就是只要对代码有了新的操作,随手按下Ctrl+S键,随时改变,随时保存。
这一步是这个小程序的最出成果的地方了。可以说我们之前的所有准备都是为了这一步的实现。当然对初学者来说,可能也会有很多知识点需要消化。
第一步,我们需要获取控件内容。
首先是输入框。我们根据上一节为控件的命名,输入框为tbxX和tbxY。
当你在代码编辑器中敲入tbx的时候,你会发现VS自动就弹出我们之前定义好的两个控件名了,用方向键选取,然后敲回车,就自动补全了。
这时,你再打一下.这个符号,会弹出所有tbxX这个控件支持的方法、属性等等
不用管它,继续键入Text。其实不用打全,打上一个t,第一个就是Text
同样是方向键选取,按回车。
上面我为了照顾初学者,讲的稍微琐碎了些,以后就直接虽说用哪个了。
这个Text,对应的就是我们输入的内容。至于为什么Text是而不是其他的,这个就说来话长了,对初学者没有必要掌握。控件的意义就在于,它已经把很多工作都封装好了,你作为使用者,不需要关心它是怎么工作的,你只需要知道它能提供什么接口、这些接口都是干嘛的就好了。
我们把鼠标移到这个Text单词上,VS会自动给出一个提示
第一个蓝色的string字符,代表的是它的数据类型为字符型。下面划线部分说明做这个Text的作用是什么:获取或设置这个控件关联的文本。
所以 tbxX.Text 就是我们输入的第一个值,同理 tbxY.Text就是我们输入的第二个值。再继续推理,代表输出结果的文本框输出文字就是 lblResult.Text。
=在编程中是把等式右边的值赋给左边的意思,我们暂时不考虑计算符号的问题,假设它们都是做加法。
那是不是说,我们写成这样的代码就可以了呢?
lblResult.Text = tbxX.Text + tbxY.Text;
编程就是有这点好处,不怕试错。做硬件的不小心就会把元器件烧了,软件无所谓,改坏了再改回来就好了。这样的代码我们先运行一下试试,看看能得到什么样的结果:
这个结果可以说是喜忧参半,喜的是上面三个值都能如实表达并且正常运行,忧的是结果不是应该等于2吗?怎么等于11了?
出现这个结果的原因,就涉及到了编程中基本的概念:数据类型。上面我提到过,输入框的Text是string类型,也就是字符串形式的。既然是字符串,你可以用常理来推测,字符a加上字符b会得到什么?是拼接字符ab对吧,那字符1加字符1,合起来就是11嘛。所以你要想让两个字符进行数学运算,首先要把这两个字符变成数字类型,对吧?编程也是这个道理,现实社会中的问题想明白了,编程也就明白了。
接下来,我们来改进代码,做类型转换。在C#编程中,有以下几种常用的基本类型(其他类型我们用到了再展开):
既然是1+1这种数字运算,那我们就先用整型来实现。我们分别声明名为x和y的变量,用来存储转换后的值,初始值均为0。代码如下:
int x = 0;
int y = 0;
那如何把字符型转换成整型呢?.Net类库为我们提供了 int.Parse的方法,可以把字符型转换成整型。代码如下:
x = int.Parse(tbxX.Text);
y = int.Parse(tbxY.Text);
这两行代码就是把tbxX.Text的字符型值转换成整型值,比如“1”变成1。
这样x+y应该就能得到正确的值了吧,我们直接把x + y赋值给lblResult.Text,发现代码编辑器出现了红线,这种就意味着编译错误,也就是语法写的不对。
我们看提示,大概就明白了,x和y都是整型,相加后得出的值也必然是整型,不同类型的变量是无法直接赋值的,而lblResult.Text是字符型,我们还需要把整型转换成字符型。很简单,用一个toString()的方法就搞定了。代码如下:
lblResult.Text = (x + y).ToString();
注意x+y要用()括起来,代表是两个数相加以后再转换成字符型;
ToString()是一个方法,括号不要忘了写,否则编译不过;
做完以上的内容,就可以编译通过了,我们再来看下效果:
我们尝试1+1,结果输出2;再尝试2+1,结果等于3,符合我们的预期。
但我们知道,现在只能做加法,下拉框的符号还没能生效,如何实现我们下节继续。
页面更新:2024-04-16
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号