- 属性,方法和事件是控件使用者和控件交互的接口:包含系统属性和自定义属性。
- 简单属性
[Description("简单属性")]
[Category("简单属性")]
public string Value
{
get
{
String s = (String)ViewState["Value"];
return ((s == null) ? String.Empty : s);
}
set
{
ViewState["Value"] = value;
}
}
另外简单属性可以直接使用ViewState存储其值,因为简单属性可以直接映射字符串,而ViewState直接接受的格式也是字符串。
- 属性设计特性(查书)
- 复杂属性
- 连字符形式的复杂属性标记
private Person pPerson=null;
[Description("复杂属性--连字符形式")]
[Category("复杂属性")]
[PersistenceMode(PersistenceMode.Attribute)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] //避免复杂属性和子属性值都放在一个框中。
public Person Person
{
get
{
if (pPerson == null)
{
pPerson = new Person();
}
return pPerson;
}
}
Person-Age="28" Person-Name="King Zheng"
PersistenceMode 特性表示在文件中如何保持复杂属性
PersistenceMode.Attribute 作为控件的属性
PersistenceMode.InnerPropery:作为嵌套标签表示复杂属性
PersistenceMode.InnerDefaultProperty:一般用于常用的活重要复杂属性或集合。
PersistenceMode.EncodeInnerDefaultProperty:与InnerDefaultProperty有点区别,其内容进行HTML编码
DesignerSerializtionVisibility:在设计时序列化复杂对象方式
DesignerSerializtionVisibility.Visible 对属性本身生成代码
DesignerSerializtionVisibility.Hidden:不对属性生成代码
DesignerSerializtionVisibility.Visibility.Contend生成复杂属性内容的代码,而不是其本身。
- 内部嵌套复杂属性标记
private RowStyle rsRowStyle;
[PersistenceMode(PersistenceMode.InnerProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[NotifyParentProperty(true)]
[Category("复杂属性")]
[Description("复杂属性--内部嵌套形式")]
public RowStyle RowStyle
{
get
{
if (rsRowStyle == null)
{
rsRowStyle = new RowStyle();
}
return rsRowStyle;
}
}
- 内部嵌套默认复杂属性标记:
private Items items;
[PersistenceMode(PersistenceMode.InnerDefaultProperty)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[NotifyParentProperty(true)]
[TypeConverter(typeof(CollectionConverter))]
[Category("复杂属性")]
[Description("复杂属性--内部默认嵌套形式")]
public Items Items
{
get
{
if (this.items == null)
{
this.items = new Items();
}
return this.items;
}
}
- 内部嵌套编码默认属性
/// <summary>
/// 文本属性
/// </summary>
[NotifyParentProperty(true)]
[PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty)]
[Description("复杂属性--内部默认嵌套形式")]
public string Text
{
get { return _Text; }
set { _Text = value; }
}
-
使用AddParsedSubObject控制复杂属性的内容
-
使用ControlBuilder解析复杂内容
-
属性编辑器(查书)定制自己的属性编辑器 窗体--》UITypeEditor -》Control
- 类型转换器可以用于在数据类型之间转换,并通过提供文本到值的转换或待选值的下拉列表来帮助在设计时配置属性。
自定义类型转换器继承自TypeConverter,需要OVerride其方法
- 自定义属性
分享到:
相关推荐
庖丁解牛—纵向切入ASP.NET3.5控件和组件开发技术 pdf,word
庖丁解牛纵向切入asp.net3.5控件和组件开发技术(代码)
庖丁解牛纵向切入ASP.NET3.5 控件组件开发技术光盘源码
《庖丁解牛:纵向切入ASP.NET3.5控件和组件开发技术》适合从事ASP.NET技术多年想往深度理解ASP.NET工作机制的开发人员阅读,对于刚刚入门的初级开发人员,《庖丁解牛:纵向切入ASP.NET3.5控件和组件开发技术》的...
《庖丁解牛:纵向切入ASP.NET3.5控件和组件开发技术》适合从事ASP.NET技术多年想往深度理解ASP.NET工作机制的开发人员阅读,对于刚刚入门的初级开发人员,《庖丁解牛:纵向切入ASP.NET3.5控件和组件开发技术》的...
第4章 服务器控件属性 62 4.1 控件属性的作用 62 4.1.1 系统属性 62 4.1.2 自定义属性 62 4.2 简单属性 63 4.3 属性的设计时特性 64 4.4 复杂属性 67 4.4.1 概述 67 4.4.2 复杂属性的几种标记形式 67 4.4.3...
庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术完整版(包过示例源代码vs2008版) 总共12个包,请分别下载
牛人写的,不错。里面的技术都是比较新的。 准备买本书看。
庖丁解牛—纵向切入ASP.NET3.5控件和组件开发技术
庖丁解牛 纵向切入asp.net3.5控件和组件开发技术 郑岩 VS2005 代码
☆ 资料说明: ☆ [电子工业出版社] 庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发技术 (第2版) 随书源代码
庖丁解牛—纵向切入ASP.NET 3.5控件和组件开发技术的word版本
庖丁解牛—纵向切入ASP.NET3.5控件和组件开发技术PDF版和word版合集
庖丁解牛—纵向切入ASP.NET 3.5控件和组件开发技术有从第二章到第六章,涵盖了所有的开发控件的方法和基础知识
庖丁解牛+纵向切入ASP.NET+3.5控件和组件开发part2 接part1 超过70M必须分隔 里面含有 该书的DEMO示例
庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术 从第2章到第6章
庖丁解牛—纵向切入Asp.net3.5控件和组件开发技术(提供五章试读)
庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发技术 [完整版]