• C#窗体程序【用户控件-窗体】委托事件


    这里的自定义控件是由普通控件组合而成的。
    希望事件响应代码推迟到使用自定义控件的窗体里写。
    步骤一:新建一个用户控件,放两个按钮,Tag分别是btn1,btn2.
    这两个按钮的共用单击事件处理代码如下:

    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 UcDll
    {
      public partial class UcTest : UserControl
      {
        public UcTest()
        {
          InitializeComponent();
        }
        //定义委托
        public delegate void BtnClickHandle(object sender, EventArgs e);
        //定义事件
        public event BtnClickHandle UserControlBtnClicked;
        private void btn_Click(object sender, EventArgs e)
        {
          if (UserControlBtnClicked != null)
            UserControlBtnClicked(sender, new EventArgs());//把按钮自身作为参数传递
        }
      }
    }
    

    步骤二:当用户拖一个自定义控件在窗体的时候,

    在事件里可以找到UserControlBtnClicked事件。

    private void ucTest1_UserControlBtnClicked(object sender, EventArgs e)
    {
      Button btn = sender as Button;
      MessageBox.Show(btn.Tag.ToString());
    }
    

      

     

    作  者:大師兄丶
    出  处:http://www.cnblogs.com/zhao-yi
    Git 地 址:https://github.com/ZhaoYis
    个人博客:http://www.zhaoyis.com.cn
    关于作者:主要从事基于.Net Framework平台的项目开发。如有问题或建议,请多多赐教!
    版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是作者坚持原创和持续写作的最大动力!
  • 相关阅读:
    Ubuntu:替换DASH图标
    使用 python 操作 mongodb 常用的操作
    boost Asio网络编程简介
    optional的使用
    boost中Function和Lambda的使用
    boost多线程入门介绍
    boost中bind的使用
    c++11新标准for循环和lambda表达式
    使用gcc命令编译多个文件
    编辑gif
  • 原文地址:https://www.cnblogs.com/zhao-yi/p/6225903.html
Copyright © 2020-2023  润新知