复合控件之动态Button生成

简介:

Button的生成其实不难,麻烦的是它的事件,我看了好多反编译的代码,还有网上很多人的代码,跟我想的都不一样,到现在对控件的事件执行和回发还有比较模糊,以后有时间需要好好研究下,只可惜没有好的书,只能研究好代码。

言归正传,网上的控件生成有个弊端就是所有事件都是通过复合控件的事件属性的形式实现的,所以无法动态的增加Button这类控件,但是如果是一个固定的组合控件这样做也挺好。我的代码很简单,但是也花了我不少时间探索,主要是类似的资料太少,实现的也不完美,多的不说了直接看代码吧,很简单(T。T);

    public class testControl : CompositeControl
    {
        void bt_Click(object sender, EventArgs e)
        {
            EventHandler handler = (EventHandler)this.Events[sender];
            if (handler != null)
            {
                handler(this, EventArgs.Empty);
            }
        }
        public void AddButton(string text, EventHandler e)
        {
            Button bt = new Button();
            bt.Click +=new EventHandler(bt_Click);
            this.Events.AddHandler(bt, e);
            Controls.Add(bt);
        }
    }
本文转自today4king博客园博客,原文链接:http://www.cnblogs.com/jinzhao/archive/2009/02/21/1395554.html,如需转载请自行联系原作者
相关文章
|
7月前
|
前端开发
elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件
elementui解决el-dialog不清空内容的问题,el-dialog关闭时销毁子组件
|
7月前
有关element UI el-table 跟el-dialog搭配使用出现的问题,背景问题,穿透问题
有关element UI el-table 跟el-dialog搭配使用出现的问题,背景问题,穿透问题
345 0
|
JavaScript API 前端开发
vue中对el-dialog宽度调整方法之一二
vue时,会用到el-dialog做为弹窗,但这个弹窗的宽度默认为50%.因项目中需要调整弹偿的宽度,需要设置其属性。 尝试过程如下: 方法1: 通过查找 el-dialog的官网api,查到其有宽度width的属性,设置其宽度比例即可 width="85%",但经设置后,发现没起任何作用。
7715 0
|
5月前
|
JavaScript
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
element-ui 在vue中el-input输入框的autofocus属性失效【解决方案】
290 1
|
5月前
【el-cascader-plus亲测有限】el-cascader级联选择器懒加载+多选功能回显失败解决方案
【el-cascader-plus亲测有限】el-cascader级联选择器懒加载+多选功能回显失败解决方案
293 0
|
7月前
|
小程序 JavaScript
小程序表单组件——button
小程序表单组件——button
73 0
layui设置textarea高度几种方式
layui设置textarea高度几种方式
375 0
element-ui里的el-table在grid布局下切换数据有滚动条时不断增加?
element-ui里的el-table在grid布局下切换数据有滚动条时不断增加?
124 0