C#学习之委托和事件

本文章主要是个人学习C#的记录,仅供参考,如果对您有所帮助那将锦上添花。

本次的任务是设计两个窗口,第一个窗口作为打开第二个窗口进行乘法计算,将第二个窗口的计算结果输出到第一个窗口上。
实现内容:
窗口一(Form1):
在这里插入图片描述
代码:
当点击”打开乘法计算器“时:

private void enter_click_Click(object sender, EventArgs e)
        {
            multi multi_win = new multi();
            multi_win.multiresult += new MultiResult(ShowResult); //调用了其他窗口的内容
            multi_win.ShowDialog();
        }

以及定义的函数内容:

        public void ShowResult(double result)
        {
            mul_result1.Text = result.ToString();

窗口二
在这里插入图片描述

代码:
首先是定义委托

public delegate void MultiResult(double result); //委托

计算部分

public event MultiResult multiresult;  //事件
        private void multi_click_Click(object sender, EventArgs e)
        {
            double mul_1, mul_2, result;
            mul_1 = double.Parse(mul1.Text);
            mul_2 = double.Parse(mul2.Text);
            
            result = mul_1 * mul_2;

            multiresult(result);

            //this.Close();


        }

该任务还是简单的。
但是关键是对委托和事件的学习内容,以下将记录一些对委托和事件的理解。
许多内容出自“火山上的企鹅”的文章。
链接:https://blog.csdn.net/qq_16504163/article/details/104244722
如果要在想将窗口2的内容输出到窗口1中,那么需要做以下的动作:
1、在窗口2中声明一个委托,上述例子中就是:

public delegate void MultiResult(double result); //委托

2、在窗口2中实例化一个委托,作为事件

public event MultiResult multiresult;  //事件

注意:声明是在最外层,实例化是在窗口层内,位置可以参照上述例子。

3、在窗口1中添加委托的事件,同样上述内容为:

multi multi_win = new multi();
multi_win.multiresult += new MultiResult(ShowResult); //调用了其他窗口的内容

4、在窗口1中添加委托时间的实现内容(就像函数一样)

public void ShowResult(double result)
{
    mul_result1.Text = result.ToString();
}

5、最后在窗口2中调用委托就行啦

 private void multi_click_Click(object sender, EventArgs e)
{
    double mul_1, mul_2, result;
    mul_1 = double.Parse(mul1.Text);
    mul_2 = double.Parse(mul2.Text);
            
    result = mul_1 * mul_2;

    multiresult(result); //就是这一行

    //this.Close();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值