学了点皮毛,为了不忘,先做个组合控件,其下有两个imagebutton作为其子控件,作用就是可以用作Formview的Command按钮(具体作用不是最重要的,关键是怎么创建子控件,定义属性,重写render方法)

首先初始化两个ImageButton
自定义控件学习笔记(3)private ImageButton tb_op;
自定义控件学习笔记(3)
private ImageButton tb_back;

然后定义三个属性:CommandA;CommandB;PostbackurlB并把属性添加到控件的类别中
自定义控件学习笔记(3)[Bindable(true), Category("Behavior"), DefaultValue(""), Description("Button1's Commandname")]
自定义控件学习笔记(3)        
public string CommandA
        }
ps:我用的中文版的vs,希望知道Category的所有类别,在元数据中查到了所有的类别,附文后表1;属性设置除了EnsureChildControls以外没有什么悬念,关于EnsureChildControls在msdn上查到相关描述如下:
EnsureChildControls

该方法首先检查 ChildControlsCreated 属性的当前值。如果此值为假,则调用 CreateChildControls 方法。

第三步:创建子控件

自定义控件学习笔记(3) protected override void CreateChildControls()
        }

本来这样就基本可以了,但我需要在render前对其输入的属性做一些判断,并由此改变子控件的属性,所以重写一下render方法

自定义控件学习笔记(3)protected override void Render(HtmlTextWriter writer)
        }

现在我的第一个控件就写好了:)
下面是全部代码:

自定义控件学习笔记(3)using System;
自定义控件学习笔记(3)
using System.Collections.Generic;
自定义控件学习笔记(3)
using System.ComponentModel;
自定义控件学习笔记(3)
using System.Text;
自定义控件学习笔记(3)
using System.Web;
自定义控件学习笔记(3)
using System.Web.UI;
自定义控件学习笔记(3)
using System.Web.UI.WebControls;
自定义控件学习笔记(3)
自定义控件学习笔记(3)
namespace SeyonControls.CommandButton



表1:

自定义控件学习笔记(3)Action                  操作
自定义控件学习笔记(3)Appearance        外观
自定义控件学习笔记(3)Asynchronous   异步
自定义控件学习笔记(3)Behavior              行为
自定义控件学习笔记(3)Data                     数据
自定义控件学习笔记(3)Default                杂项
自定义控件学习笔记(3)Design                布局
自定义控件学习笔记(3)DragDrop           拖放
自定义控件学习笔记(3)Focus                  焦点
自定义控件学习笔记(3)Format                格式
自定义控件学习笔记(3)Key                      键
自定义控件学习笔记(3)Layout                布局
自定义控件学习笔记(3)Mouse                鼠标
自定义控件学习笔记(3)WindowStyle    窗口样式

相关文章: