zoukankan      html  css  js  c++  java
  • C#中自定义事件的触发

    我想在窗体重绘时触发自定义事件,我晕了。经历了两天的浆糊,我总算弄清楚了自定义事件不是我想象的那样运作,可是就是我想象的模式,我也很晕……

    总的来说,我认为事件可理解为当对象状态改变时,所触发的过程,而为了过程的灵活性,自定义事件用委托来实现,于是其中产生了两层不可分离的嵌套,于是我晕掉了。作为一个简单的自定义事件例子,需要具备什么,我试着整理一下思路。建立一个Drawer.cs文件,其中有一个新的Drawer类。

    首先,需要一个定义一个委托:

    public delegate void DrawHandler();

    然后,我创建一个触发事件类:
    public void Connection(string state)
    {
        OnDrawStart();
    }

    接下来,申明一个监听事件:
    public event DrawHandler OnDrawStart;

    然后一个自定义事件类就完成了。呵呵,会不会太简单了?接下来是如何运用这个自定义事件类。

    在Drawer类中定义事件的处理过程:

    public void Init()
    {
        
    this.OnDrawStart += new DrawHandler(Browser_OnDrawStart);
    }

    void Browser_OnDrawStart()
    {
        MessageBox.Show(
    "Start");
    }

    在程序执行适当的时候触发事件(执行过程):
    protected override void OnPaint(PaintEventArgs e)
    {
        Drawer dr 
    = new Drawer();
        dr.Init();
        dr.Connection();
    }

    测试代码写的比较乱,将就一下。我下一步想扩展一下Form对象,以适应我现在特殊的程序要求。
  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/islee/p/1121512.html
Copyright © 2011-2022 走看看