目录
视频演示
要求
源代码
多个控件的事件绑定到一个方法上
?
?
视频演示
用委托实现简单的计算器
要求
用委托实现简单的加减乘除运算计算器并显示结果,用户可以选择直接输入数字或操作符,也可以选择点击屏幕上的数字和操作符。
源代码
详细注释已写,请自行选择食用
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 委托
{
public delegate int Caculate(int x, int y);//定义委托
public partial class Form1 : Form
{
public Caculate handle;//声明委托,handle现在为null
MyMath math = new MyMath();//实例化MyMath类
int OP1;//定义两个操作数
int OP2;
bool IsC = true;//用于判断输入的数是运算符还是操作数,当前为true
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button15_Click(object sender, EventArgs e)
{
}
public void Sum_(object sender, EventArgs e)//将所有的数字button的click事件绑定在这一个方法中
{
if (sender is Button)//判断点击的是否为button
{
Button button = (Button)sender;
if (IsC)//输入第一个操作数时进入
{
textBox1.Text += button.Text;
}
else//输入第二个操作数时进入
{
IsC = true;//提前将下次输入的运算符,认定为第一个操作数
textBox1.Text = button.Text;
}
}
}
public void Sca_(object sender, EventArgs e)
{
IsC = false;//提前将下次输入的运算符,认定为第二个操作数
if (handle == null)//当委托没有指向任何方法时,此时一定只有一个操作数,且为第一个
{
OP1 = Convert.ToInt32(textBox1.Text);
}
else
{
OP2 = Convert.ToInt32(textBox1.Text);
OP1 = handle(OP1, OP2);//将两个操作数,通过委托传给MyMath的方法
//通过这里我们知道委托就相当与一个指针,它指向一个方法
textBox1.Text = OP1.ToString();//填充运算后结果
}
if (sender is Button)
{
Button button = (Button)sender;
switch (button.Text)
{
case "+":
handle +=math.Add;
//委托常用语法糖
break;
case "-":
handle += new Caculate(math.Sub);
break;
case "*":
handle += new Caculate(math.Mul);
break;
case "/":
handle += new Caculate(math.Div);
break;
case "=":
handle = null;//委托制空,避免产生方法链影响运算结果。
break;
}
}
}
}
public class MyMath
{
public int Add(int x,int y) { return x + y; }
public int Sub(int x, int y) { return x - y; }
public int Mul(int x, int y) { return x * y; }
public int Div(int x, int y) { return x /y; }
}
}
?
多个控件的事件绑定到一个方法上
弟0步 先在form类中写一个公用的方法这个就是我们需要绑定的方法
第1步 先将需要绑定的控件全部选中
第2步 右击鼠标打开属性界面
第3步 选择闪电图标
第4步 找到click事件(这里以click事件为例也可以选用其他事件)
第5步 点开click事件中的下拉菜单找到需要绑定的方法将其选中
第6步 完美收工
?
?
?
|