第二课用循环简化编程——C#计算器编程教学

上节课讲到,有完整功能版的接口和基本功能的接口。为啥会这样呢?这其实就是为了少写代码,用个循环解决输入的问题。你可以数字1的点击事件是输入1,就是每个按钮做一段程序。这当然没问题。
简化版的接口是根据按钮的Text值来判断执行哪个功能,程序原本20多块,可以省略成2块。这里说一下,建立项目和添加控件等基本动作不讲了。
实际编程,要多考虑将重复的过程用循环来简化编程。
第一步,建立操作类,Cacl,继承ICacl,显式实现接口。
第二步建立UI界面,就是那个winform操作界面。这个略。
第三步,写后台代码。
双击form添加一load事件。这个事件就是为了注册各个按钮的Click事件。

注意两点,一是除了Button还有TextBox,要判断一下,二是循环的选择。

代码:


        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (var item in Controls)
            {
                if (item.GetType() == typeof(Button))
                {
                    Button btn = item as Button;
                    btn.Click += Btn_Click;
                }
            }
        }
        
        private void Btn_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            string key = btn.Text.Trim();
            cacl.EnterString(key);
        }

后台代码新建一个Cacl对象,这个应该会吧?这个对象作为主窗口的成员,也是我们要操作的对象,是面向对象编程的精髓。

        ICacl cacl = new Cacl();

然后是绑定操作。注界面上有两个TextBox,下面的只读。设置一下Name,分别为txtBoxCaclString和txtBoxResult。其实还有一个Label,指定名称为lbMemory。

绑定代码如下:

            textBoxResult.DataBindings.Add(new Binding("Text", cacl, "Result", true));
            textBoxCaclList.DataBindings.Add(new Binding("Text", cacl, "CaclString", true, DataSourceUpdateMode.OnValidation));
            lbmemory.DataBindings.Add(new Binding("Visible", cacl, "HaveMemory", false));
把这些代码放到Load也行,放到构造函数初始化命令后面也行。
第二课结语。这一课其实说的是界面代码。这里写的代码还缺一句,就是那个“key"还没有使用。后面加一句:
cacl.EnterString(key);
程序就是模仿并稍一点改造win7 计算器基本型,功能也别无限放大。
学习编程这样的例子是最好的。
后面还有很多循环、数组、操作符重载,重写ToString,条件判断,这些都是平时编程的基本功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值