您的位置:首页 > 编程语言 > C#

C#.Net里面通过事件调用事件,通过简单了解相信可以帮你解决问题

2010-03-28 21:03 519 查看
今天我又学了一招简单而又实用的招式,名为----事件调用事件。

比如说你有一个按钮事件1,但是在按钮事件2中需要有按钮事件1的动作。这就是事件的调用,跟方法的调用是同一个意思。

protected void Button1_Click(object sender, EventArgs e)
    {
        this.Label1.Text = this.TextBox1.Text;
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        this.Label2.Text = this.TextBox1.Text;
        Button1_Click(null, null);
    }


从代码当中可以看到Button1的点击事件是使Label1获得TextBox1的值,而Button2的点击事件是使Label2获得TextBox2的值并调用Button1的事件了。也就是说Button2事件里面有一部分是执行了Button1的事件。

这里还有一点需要注意,那就是如果事件是同一类型的话,那你还可以把它当成是方法的调用一样来使用。(都是按钮的点击事件)

protected void Button2_Click(object sender, EventArgs e)
    {
        this.Label2.Text = this.TextBox1.Text;
        Button1_Click(sender, e);
    }


可能大家已经关注到事件里面的两个参数,我呀,也不多说,用别人的精华内容来说明吧。大家慢慢体会其中的意思,或者可以去下面的链接去更发现更实在的知识。



Object sender

sender是事件源(被监视的对象,也叫监视对象,事件触发者,本例为热水器,水温达到95℃以上触发事件),表示触发此事件的对象

//比如说你按下按钮,那么sender就是按钮,触发已经预定好的事件处理代码,比如Onclik





EventArgs e

e是事件参数(***EventArgs类对象,根据事件的不同事件参数类型可能不同,但必须继承EventArgs类,比如本例中的 public class BoiledEventArgs : EventArgs ,又根据net的编码规范"继承自EventArgs的类型应该以EventArgs结尾。",所以名称为***EventArgs),包含跟该事件相关的信息,比如参数。这要你自己手动去写代码(已经写好封装了的可以直接拿来用,但如果这样,那么它的名字不再是EventArgs了,而是以EventArgs结尾的一个名称。根据.net编码规范,如果一个函数头中直接使用的是EventArgs,那么代表它不需要使用e来传递特殊参数,你可以在VS中看看EventArgs的定义,看看它都包括了什么内容),它用来辅助你处理事件。还可以传递引用,在方法中直接访问类的成员等。

本例中包含参数temperature。

public class BoiledEventArgs : EventArgs
{
public readonly int temperature;
public BoiledEventArgs(int temperature)
{
this.temperature = temperature;
}
}

//假如"用鼠标点击窗体"这个事件发生,那么e会包含点击的位置等等

归根究底,这个sender和e及其一整套的处理方式,只不过是windows消息机制的另外一种表现罢了!

(摘至:

上面内容的链接为

http://hi.baidu.com/%C9%FA%B4%E6%B5%C4%D7%CA%B1%BE/blog/item/c06f64d1d72e17309b5027f6.html)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐