zoukankan      html  css  js  c++  java
  • 一个事半功倍的c#方法 动态注册按钮事件

    前几天在网上看见一个制作计算器的c#程序,其中有一个动态注册按钮事件,觉的很有用。于是实际操作了一哈, 确实比较好。

    言归正传,下面就来讲讲怎样动态注册按钮事件。 
    首先,我们需要设置变量来获取点击一个数字按钮的值,以便在“=”按钮单击事件中计算最终的结果。下面就是我开始的时候写的一段代码: 

    public double? value1 = null ;//获取运算符前的数值 
    public double? value2 = null ;//获取运算符前的数值 
    public type caltype=type .none ;//获取运算符 
    private void btnvalue1_Click(object sender, EventArgs e) 

    if (value1 == null) 

    value1 = Convert.ToDouble(btnvalue1.Text); 

    else 

    value2 = Convert.ToDouble(btnvalue1.Text); 

    this.txtvalue.Text = btnvalue1.Text; 
    }“1”按钮的单击事件 

    一共有十个这样的数字键按钮单击事件 
    是不是觉得这样写很麻烦,于是就有了按钮注册事件。下面是我后面下的一段代码: 

    public double? value1 = null ;//获取运算符前的数值 
    public double? value2 = null ;//获取运算符后的数值 
    public type caltype=type .none ;//获取运算符 
    private void Form1_Load(object sender, EventArgs e) 

    btnvalue0.Click += new EventHandler(btnvalue_Click); 
    btnvalue1.Click += new EventHandler(btnvalue_Click); 
    btnvalue2.Click += new EventHandler(btnvalue_Click); 
    btnvalue3.Click += new EventHandler(btnvalue_Click); 
    btnvalue4.Click += new EventHandler(btnvalue_Click); 
    btnvalue5.Click += new EventHandler(btnvalue_Click); 
    btnvalue6.Click += new EventHandler(btnvalue_Click); 
    btnvalue7.Click += new EventHandler(btnvalue_Click); 
    btnvalue8.Click += new EventHandler(btnvalue_Click); 
    btnvalue9.Click += new EventHandler(btnvalue_Click); 
    //通过EventHandler将按钮控件的Click事件 
    绑定到 btnvalue_Click上面,从而动态注册按钮事件 

    private void btnvalue_Click(object sender, EventArgs e) 

    Button btn =(Button)sender ; 
    //实例化按钮,从而获取当前单击按钮的值 
    if (value1 == null) 

    value1 = Convert.ToDouble(btn.Text); 

    else 

    value2 = Convert.ToDouble(btn.Text); 

    this.txtvalue.Text = btn.Text; 

  • 相关阅读:
    NuGet Package Explorer使用教程下载
    .NET 大数据量并发解决方案
    ASP.NET Core 中间件 中间件(Middleware)和过滤器(Filter)的区别
    C#的dapper使用
    Quartz.NET实现作业调度
    .Net Core + DDD基础分层 + 项目基本框架 + 个人总结
    asp.net mvc框架之EF的使用
    Asp.Net MVC+EF+三层架构的完整搭建过程
    WebAPI异常捕捉处理,结合log4net日志(webapi2框架)
    SQL SERVER 2012数据库:开启防火墙导致外部无法连接数据库解决办法
  • 原文地址:https://www.cnblogs.com/sjqq/p/6428682.html
Copyright © 2011-2022 走看看