• c# 事件示例


    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;

    /// <summary>
    /// 自定义缩略图控件
    /// </summary>
    public  class ctlPictureBox
    {
        public delegate void PicClickHandler(object sender, PictureArgs e);
        /// <summary>
        /// 定义单击事件
        /// </summary>
        public event PicClickHandler PicClick;

        protected virtual void OnPictureClick(PictureArgs e)
        {//事件触发方法
            if (PicClick != null)
            {//判断事件是否为空
                PicClick(this, e);//触发事件
            }
        }
      //激发事件
        private void pbImg_Click(object sender, EventArgs e)
        {
            PictureArgs args = new PictureArgs();
            args.FileName = fileName;
            OnPictureClick(args);
        }

    }

       
    public class PictureArgs : EventArgs
    {
        private string filename = "";
        /// <summary>
        /// 文件名称
        /// </summary>
        public string FileName
        {
            get { return filename; }
            set { filename = value; }
        }
    }

       

    示例2

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Drawing;
    using System.Data;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace test
    {
     public partial class MyControl: UserControl
     {
      public MyControl()
      {
       InitializeComponent();
      }

            public delegate int MyDelegate(string str);

            public MyDelegate ClickHandler = null;


            private void button1_Click(object sender, EventArgs e)
            {
                if (ClickHandler != null)
                {
                    ClickHandler("hello");
                }
            }
     }
    }

    调用方法

    public int Test(string str)
            {
                MessageBox.Show(str);
                return 1;
            }

            public int Test1(string str)
            {
                MessageBox.Show(str +"," + str);
                return 1;
            }


            private void Form1_Load(object sender, EventArgs e)
            {
                myControl1.ClickHandler += Test;
                myControl1.ClickHandler += Test1;
             
              //  myControl1.ClickHandler -= Test1;
            }

  • 相关阅读:
    C++ template —— 模板基础(一)
    《C++标准程序库》笔记之四
    《C++标准程序库》笔记之三
    《C++标准程序库》笔记之二
    C++标准程序库笔记之一
    JAVA中JPA的主键自增长注解设置
    SVN中服务器地址变更
    JAVA中正则表达式常用的四个方法
    反编译class文件并重新编译的方法
    JAVA中文件与Byte数组相互转换的方法
  • 原文地址:https://www.cnblogs.com/yg_zhang/p/1764731.html
Copyright © 2020-2023  润新知