WINFORM UserControl属性的特性

自定义控件非常灵活,我通过字段{get;set;}对控件的图片进行更换。但由于是相对路径,因此在IDE编辑过程中,拖动控件进入时会出现图片无法访问的错误。原因在于拖动控件时,所有的public字段都将自动赋初始值(bool,enum)。

为了解决这个问题,我在寻找如何防止在IDE中拖入控件时自动对某些字段赋值。

最后找到了UserControl特性中的ReadOnly特性:

[ReadOnly(true)]

public bool IsSelected{get;set;}

CNBLOG

PS:发现还有好多东西都不会用,太惭愧了。赶紧补上。


1. Bindable

这个特性表示属性是否可以绑定一个有效数据源。通常使用布尔值进行设置。例如:Bindable(true)。如果使用值true标记属性,表示该属性可以绑定一个有效数据源,且应引发该属性的属性更改通知。


2. Browsable

指定属性是否应该在属性浏览器中显示,使用布尔值设置。通常情况下,功用属性和那些希望在属性浏览器中显示的属性被设置为 Browsable(true),只读属性和那些不希望在属性浏览器中见到的属性被设置为 Browsable(false)。


3. Category

指定属性在属性浏览器中进行分组显示的类别。该设计时特性帮助可视化编辑器将属性进行逻辑分组。通常分为:外观(Appearance)、行为(Behavior)、布局(Layout)、数据(Data)、操作(Action)、键盘(Key)和鼠标(Mouse)等。除此之外,还可以自定义分组类别。


4. Description 

控制屬性或事件是否顯示於IntelliSense視窗中。Never不顯示,Always顯示, Advanced僅顯示於進階使用者模式,進階使用者模式可經由 Tools|  Options | TextEditor | C# 中開啟。


5. EditorBrowsable

控制屬性或事件是否顯示於IntelliSense視窗中。Never不顯示,Always顯示, Advanced僅顯示於進階使用者模式,進階使用者模式可經由 Tools|  Options | TextEditor | C# 中開啟。


6. DesignerSerializationVisibility

指定属性是否以及如何在代码中序列化,其值为DesignerSerializationVisibility的枚举值。存在3种设置方式:DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)指定序列化程序不应该序列化属性值;DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)指定应该允许序列化程序序列化属性的值;

DesignerSerializationVisibility(DesignerSerializationVisibility.Content)指定序列化程序应该序列化属性的内容,而不是属性本身。此字段为只读。.Visible为其默认值。


7. NotifyParentProperty

指示当此特性应用到的属性的值被修改时将通知其父属性。换言之,如果属性的父属性应该在该属性值改改时接到通知,则向该属性应用NotifyParentProperty特性。通常使用布尔值进行设置。


8. ParseChildren

使用该特性指示当在页面上以声明方式使用控件时,嵌套在服务器控件标记内的XML元素是应该视为属性还是应视为子控件。通常情况下,包含两种声明方式:①ParseChildren(true)表示将子XML元素作为服务器控件的子控件分析;②ParseChildren(bool childrenasProperty, string defaultProperty),其中childrenasProperty和方式①中的布尔值参数意义相同,defaultProperty定义默认情况下将子控件分析为服务器控件的集合属性。


9. PersistChildren

该特性指示设计时是否应将服务器控件的子控件作为内部嵌套控件保持。如果该特性为PersistChildren(true),则将服务器控件的子控件作为嵌套服务器控件标记保持。如果为PersistChildren(false),则将该控件的属性作为嵌套元素保持。


10. PersistenceMode

指定如何将服务器控件属性或事件保持到ASP.NET页面的元数据属性。共存在4种枚举设置方式:①PersistenceMode(PersistenceMode.Attribute),指定属性或事件保持为特性;②PersistenceMode(PersistenceMode.EncodedInnerDefaultProperty),指定属性作为服务器控件的唯一内部文本而属性值是HTML编码的,只能对字符串作这种指定;③PersistenceMode(PersistenceMode.InnerDefaultProperty),指定属性在服务器控件中保持为内部文本,还指示将该属性定义为元素的默认属性,只能指定一个属性为默认属性;④PersistenceMode(PersistenceMode.InnerProperty),指定属性在服务器控件中保持为嵌套标记,这通常用于复杂对象,它们具有自己的持久性属性。


11. DefaultProperty

指定服务器控件的默认属性,例如[DefaultProperty("MyProperty")]。


12. DefaultProperty

指定服务器控件的默认属性,例如[DefaultProperty("MyProperty")]。


13. ReadOnly

指定屬性是否唯讀。<true / false>


14. TypeConverter

指定用做此特性所绑定到的对象的转换器的类型。用于转换的类必须从TypeConverter继承。使用ConverterTypeName属性来获取为该特性所绑定到的对象提供数据转换的类名。


15. 案例。

比如 :將控件的WITFieldName屬性顯示在“CSWIT”分組中,初始值為"",描述為“控件對應數據庫中字段的名稱”

[Bindable(true),

Category("CSWIT"),

DefaultValue("")

Description("控件對應數據庫中字段的名稱。")]

public string WITFieldName

{

get

{

return strFieldName;

}

set

{

strFieldName = value;

}

}


时间: 2024-10-17 02:59:08

WINFORM UserControl属性的特性的相关文章

javascript中对象的属性的特性

enumberable: 表示是否能通过for-in循环返回属性.默认为true writable: 是否可以修改属性, 默认为true value: 包含这个属性的数据值.读取属性值时3,从这个属性读,写入属性时,把新值保存到这个位置.默认值为undefine. getter: 在读取属性时,调用的函数 setter: 在写入属性时调用的函数 特别注意:一旦调用了Object.defineProperty方法之后,那些未定义的特性值除了configurable为false之外,其他都为unde

深入理解JavaScript中的属性和特性

深入理解JavaScript中的属性和特性? JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象属性如何进行分类 属性中特性的理解 第一部分:理解JavaScript中理解对象的本质.理解对象与类的关系.对象与引用类型的关系 对象的本质:ECMA-262把对象定义为:无序属性的集合,其属性可以包含基本值.对象或者函数.即

dom属性和特性

最近做一个html转pdf的项目,中间需要用户互动html,并将互动后的html结果转换为pdf,但一开始就遇到个问题, 就是不管是jquery的val()还是dom的.value始终没法给页面的文档赋值(就是控制台的html代码)只是表面上变了. 原来浏览器中的dom中分为 属性 和 特性,属性指的是 当前浏览器中的 dom对象的属性,特性指的是 纯html文档, 我要取html,当然是要改变html文档的文本,而不只是让用户看到的 属性,一般不用到html时真是分不清这俩区别. 而且,页面在

javaScript 工作必知(八) 属性的特性 值、写、枚举、可配置

属性的特性 每个对象都拥有属性,属性具有哪些特性呢? 1.属性具有值.  2.属性是否是可写的.            3.是否是可枚举的.            4.是否是可配置的.   "use strict";//使用严格模式 var descriptor = Object.getOwnPropertyDescriptor({ x: 1 }, "x");//获取匿名对象的值 alert("value:" + descriptor.value

C# Winform AutoScaleMode属性

属性的用法: None : 禁用自动缩放.(默认时) Font :根据类使用的字体(通常为系统字体)的维度控制缩放. Dpi : 根据显示分辨率控制缩放.常用分辨率为 96 和 120 DPI. Inherit : 根据类的父类的缩放模式控制缩放.如果不存在父类,则禁用自动缩放. 如需要控件或窗体根据操作系统中字体的大小进行拉伸或缩小,则按 Font 缩放十分有用, 如果要相对于屏幕确定控件或窗体的大小,则按 Dpi 缩放十分有用. 例如,对于显示图表或其他图形的控件,可能希望使用每英寸点数 (

03-对JQuery对象的属性,特性以及数据的操作

对JQuery对象的属性,特性以及数据的操作: 特性(attributes)和属性(properties): 特性的值是字符串. 属性的值不光为字符串,而且可以为布尔值,对象,数字. 元素的属性和特性有动态链接,如果特性在dom对象中存在,其中一个发生变化,另一个也会变化 如果特性是本来就在dom对象中存在,但是类型为boolean,那么特性和属性将不会同步. 如果attributes不是dom对象内建的属性,attributes和properties的值不会同步. 操作元素的特性: 获取特性的

JS魔法堂:属性、特性,傻傻分不清楚

一.前言 或许你和我一样都曾经被下面的代码所困扰 var el = document.getElementById('dummy'); el.hello = "test"; console.log(el.getAttribute('hello')); // IE67下输出test,其他浏览器输出null “搞毛啊?”,苦逼的Jser对着浏览器大呼一声.然后就用下面蹩脚的方式草草处理掉了. function getAttr(el, prop){ return el[prop] || el

iOS常量、变量、属性及其特性

1.Objective-C中声明常量使用关键字const.如:const double PI = 3.1514; 2.Objective-C中变量可以分为成员变量.局部变量和全局变量(用的很少,尽量不要用). //————————------------常量—————————————————// 方法一: #define kDetailKey            @“detail text” #define DOWNLOAD_TIMEOUT      60.0 #define degresss

“属性”与“特性”区别

它将“属性”与“特性”做了区别,属性指的是“name,id”等等,特性指的是“selectedIndex, tagName, nodeName”等等.JQ1.6之后,可以通过attr方法去获得属性,通过prop方法去获得特性复制代码 代码如下: $("#cb").attr("tagName"); //undefined$("#cb").prop("tagName"); //INPUT