自定义asp.net控件分析 (一)
2008-04-24 15:21
253 查看
自定义asp.net控件分析 (一)前些日子,自己做了几个控件。想把自己对自定义控件的一些了解写出来,请大家多多发表自己对自定义控件制作的心得。让我们能更好的动手制作自己所需功能的控件。下面就以,.net自动生成的模版做一解释。(以vb语言为例)1.Imports System.ComponentModel2.Imports System.Web.UI3.<DefaultProperty("Text"), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")> Public Class WebCustomControl14. Inherits System.Web.UI.WebControls.WebControl5. Dim _text As String6. <Bindable(True), Category("str"), DefaultValue("11111")> Property [Text]() As String7. Get8. Return _text9. End Get10. Set(ByVal Value As String)11. _text = Value12. End Set13. End Property14. Protected Overrides Sub Render(ByVal output As System.Web.UI.HtmlTextWriter)15. output.Write([Text])16. End Sub17.End Class'---------------------------------------------------------------'1-2 导入命名空间,System.ComponentModel和 System.Web.UI 这没什么好介绍的'3 DefaultProperty("Text")--指定属性的默认值。如果用此属性需要导入(命名空间: System.ComponentModel)ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")指定当从 Visual Studio 等工具中的工具箱拖动自定义控件时为它生成的默认标记。在下面的示例中,设置特定于 MyLabel 的若干属性。{0} 的所有匹配项都由设计器替换为与 MyLabel 类关联的标记前缀。<ToolboxData("<{0}:MyLabel Text='MyLabel' BorderColor='Yellow' BackColor='Magenta' BorderWidth = '10' runat='server'></{0}:MyLabel>")>Public Class WebCustomControl1定义类名为webcustomcontrol1,以后编译生成的dll名为webcustomtrol1(注意:如果你修改类名。则需要修改{0}:后相对应的名字。例如:你把类名webcustomcontrol1改为webcustom。则需要把ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")改成ToolboxData("<{0}:webcustom runat=server></{0}:webcustom>") 否则编译后将出错。)'4 Inherits 表示继承。这里是继承System.Web.UI.WebControls.WebControl的方法,属性,事件等。'6 这句主要是控制自定义控件在’属性浏览器‘中的显示,先解释模版的句子,再扩展开讲Property [Text]() As String定义 text属性 为字符串类型Bindable(True)指定是否要绑定到该属性。-True为是,False为不Category("Appearance") --text属性将显示在外观组中。指定类别的名称,在该类别中将对属性或事件进行分组。当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。DefaultValue("")为属性设置一个简单的默认值。这里为空下面列出所有的特性详细资料可查看ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpcondesign-timeattributesforcomponents.htm 属性应用于说明BrowsableAttribute属性和事件指定属性或事件是否应该显示在属性浏览器中。CategoryAttribute属性和事件指定类别的名称,在该类别中将对属性或事件进行分组。当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。DescriptionAttribute属性和事件定义一小块文本,该文本将在用户选择属性或事件时显示在属性浏览器底部。BindableAttribute属性指定是否要绑定到该属性。DefaultPropertyAttribute属性 (将此特性插入类声明前。)
指定组件的默认属性。当用户单击控件时,将在属性浏览器中选定该属性。DefaultValueAttribute属性为属性设置一个简单的默认值。EditorAttribute 属性指定在可视设计器中编辑(更改)属性时要使用的编辑器。LocalizableAttribute属性指定属性应本地化。当用户要本地化某个窗体时,任何具有该特性的属性都将自动永久驻留到资源文件中。DesignerSerializationVisibilityAttribute 属性指定显示在属性浏览器中的属性是否应该(以及如何)永久驻留在代码中。TypeConverterAttribute 属性指定将属性的类型转换为另一个数据类型时要使用的类型转换器。DefaultEventAttribute事件 (将此特性插入类声明前。)
指定组件的默认事件。这是当用户单击组件时在属性浏览器中选定的事件。 .net中还支持自定义特性,这里就不说,有兴趣的可以去查msdn,上面有详细说明 可参考ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconwritingcustomattributes.htm7-12很简单,意思就是返回(Get)Text属性的值和设置(Set)Text属性的值13 Text属性的结束14-16 这个过程作用是重写控件的呈现。这里是在页面上显示Text属性的值 这里只是简单介绍了一下自定义控件。我将在下一篇里,用例子来具体介绍自定义控件中的属性、方法、事件。
指定组件的默认属性。当用户单击控件时,将在属性浏览器中选定该属性。DefaultValueAttribute属性为属性设置一个简单的默认值。EditorAttribute 属性指定在可视设计器中编辑(更改)属性时要使用的编辑器。LocalizableAttribute属性指定属性应本地化。当用户要本地化某个窗体时,任何具有该特性的属性都将自动永久驻留到资源文件中。DesignerSerializationVisibilityAttribute 属性指定显示在属性浏览器中的属性是否应该(以及如何)永久驻留在代码中。TypeConverterAttribute 属性指定将属性的类型转换为另一个数据类型时要使用的类型转换器。DefaultEventAttribute事件 (将此特性插入类声明前。)
指定组件的默认事件。这是当用户单击组件时在属性浏览器中选定的事件。 .net中还支持自定义特性,这里就不说,有兴趣的可以去查msdn,上面有详细说明 可参考ms-help://MS.VSCC/MS.MSDNVS.2052/cpguide/html/cpconwritingcustomattributes.htm7-12很简单,意思就是返回(Get)Text属性的值和设置(Set)Text属性的值13 Text属性的结束14-16 这个过程作用是重写控件的呈现。这里是在页面上显示Text属性的值 这里只是简单介绍了一下自定义控件。我将在下一篇里,用例子来具体介绍自定义控件中的属性、方法、事件。
相关文章推荐
- 自定义asp.net控件分析 (一)
- asp.net 自定义组合控件必须继承INamingContainer接口原因分析
- 自定义asp.net控件分析
- 自定义asp.net控件分析(二)
- 自定义asp.net控件分析
- 自定义asp.net控件分析 (一)
- [导入]自定义asp.net控件分析
- 自定义asp.net控件分析
- 自定义asp.net控件分析
- ASP.NET---自定义GridView控件小结
- ASP.net 自定义服务器控件之 GridViewControl
- 自定义asp.net控件开发之(一)-显示控件内容
- ASP.NET服务器端控件原理分析
- Asp.net 2.0 自定义控件开发[创建自定义浮动菜单FloadMenu控件][示例代码下载]
- 自定义MembershipProvider配合Asp.net 2.0 Login控件(转的,忘记哪里的了)
- asp.net 用户自定义控件自定义属性添加
- ASP.NET笔记之 控件与母板的区别分析
- Asp.net如何验证TextBox控件只输入数字(五种情况分析)
- 菜鸟也封装之asp.net自定义双样式分页控件.
- Asp.net 2.0 自定义控件开发[创建自定义右键PopupMenu控件][示例代码下载]