winform 自定义控件属性在属性面板中显示的问题
来源:互联网 发布:温故知今txt下载 编辑:程序博客网 时间:2024/05/18 01:21
我们做了自定义控件,在工具箱里拖出来的时候,想要直接在属性面板中直接编辑控件的自定义属性
我们可以用如下标签
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> [Browsable(true)] [Description("属性描述"), Category("属性卡名称"),DefaultValue("属性默认值")] public string TextEdit { set { this.textEdit1 = value; } get { return this.textEdit1; } }
以下为其他博友关于自定义控件属性的文章
转自: http://www.myfirm.cn/News/DotNetUserInterface/20080228083019417.html
在开发自定义控件件时,有好些Design属性是要使用的,如ToolboxItem, ToolboxBitmap, Category, Description等等,不知道这些属性其实也可以将控件搞出来,不过,知道了,会令事件更加简单,令控件更加专业和实用。有时,不知道用法,会令到项目的其他同事好烦,因为这个控件是你提供的。下面对一些常用的Design属性做一个简单的生产介绍。
ToolboxItem
有没有试过写一个用户控件后,想它不出现在工具箱中,当然有,有时候是控件的Designer部分没有写好或没写,有时候是控件一拖出来就报错,有时候是内部使用的控件,不想别人一引用DLL就出现控件。其它设置方法可以很简单。
[ToolboxItem(false)]
public class MyPanel : UserControl
这样就可以了。“可恶”的用户控件就自动隐藏了,不出现在工具箱中。不过,如果你不知道这样的话,可以会引来一大堆的烦事。
ToolboxBitmap
写好一个用户控件后,在工具箱中出来的是一个蓝色的齿轮,这就不是很漂亮了,也不能够直观地表达自己的意图。如果更不幸的你的控件的名称好难认的话,其它的开发者会很麻烦的。怎样才能让用户控件在工具箱中显示不同的图标呢?
[ToolboxBitmap(typeof(System.Windows.Forms.Panel))]
public class MyPanel : UserControl
这样就可以了,表示,你所做的用户控件使用的图标是Panel的图标。
如果不想用系统的图标,要使用自己的图标,可以这样
[ToolboxBitmap(typeof(MyPanel), "WindowsApplication1.Images.MyPanel.bmp")]
public class MyPanel : UserControl
不过,一定要注意路径,WindowsApplication1.Images.MyPanel.bmp表示,解决方案是WindowsApplication1,目录是Images,文件名是MyPanel.bmp,同时,这个图片必须是“嵌入的资源”(点击文件,右键,属性,有一个文件属性,其中,在生成操作中,可以选择"嵌入的资源")
Category与Description
[Category("Appearance"), Description("阴影色")]
public System.Drawing.Color ShadowColor { get { …} set { …} }
这两个是经常都会写在一起的属性,Category表示类型,如属性框中所显示的外观,布局等,当然,你可以自己写一个,叫“自定义属性”,而Description就是这个属性的描述,用来说明属性有什么用途。这两个的设置相对都比较简单,可以说,一看就知道,不过提一下,Appearance是特殊的词,在属性面板中,它就是外观一栏。
DefaultValue
[DefaultValue(typeof(Color), "DarkGray")]
public System.Drawing.Color ShadowColor { get { …} set { …} }
用于设置默认的值,对于string,bool,int,可以直接写出来,如[DefaultValue(10)],这是可以的,不过,不是这三种类型的话,就比较麻烦,一定要先转化为string才能设置成功。如上面的DarkGray,这是系统定义的颜色,这还是比较好处理的。不过,如果是一些自定义的颜色,如颜色是128,0,128,你应该将128转为16进制,写成0x800080,前缀0x是一定要加的。最后就这样
[DefaultValue(typeof(Color), "0x800080")]
Browsable
表示,是否在属性面板中显示这个属性
[Browsable(true)]
表示,将在属性面板中显示这个属性。
DesignerSerializationVisibility
表示,是否在*.Designer.cs文件中将设置的代码写出来,也就是是否要实现序列化
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
表示需要实现序列化。
- winform 自定义控件属性在属性面板中显示的问题
- winform 自定义控件属性在属性面板中显示的问题
- 控制.NET自定义控件的属性是否显示在属性面板
- 自定义控件的属性显示在属性栏
- 关于自定义属性面板的问题
- C# 自定义属性在propertyGrid控件中显示
- 写自定义控件时如何将.net控件的属性或事件显示在属性窗体中
- Unity3D中在Inspector面板中显示复合属性信息(类属性/Struct属性)
- android自定义view的自定义属性在xml中快捷键显示问题
- 在Unity 5中如何控制检视面板上的属性是否显示?
- 在自定义控件中读取XML配置属性的值
- 在用户控件中自定义属性
- DataGridView中自定义控件不能设置属性的问题
- UserControl中自定义属性如何在属性控制面板中设定
- IOS-48-解决开发中自定义控件在不同型号手机上不能显示的问题 (区别在于iOS修改了weak、strong属性)
- 自定义控件中属性
- c# winform pictureBox显示图片,PictureBox控件的Image属性
- c# winform pictureBox显示图片,PictureBox控件的Image属性
- jQuery 教程 (八) 插播:jQuery实施方案 .NET
- Xcode 4.1/4.2/4.2.1 免证书(iDP)开发+真机调试+生成IPA全攻略
- DataTable详解
- jQuery 教程 (九) jQuery工具函数1 .NET
- jQuery 教程 (九) jQuery工具函数2 .NET
- winform 自定义控件属性在属性面板中显示的问题
- jQuery 教程 (十) jQueryUI常用功能实战1 .NET
- iOS创建不带nib文件的工程之四--在自定义view上添加按钮
- 三个事和三个问题
- jQuery 教程 (十) jQueryUI常用功能实战2 .NET
- 站在电商岸边,2011年一年的总结
- 【一句话知识点】为什么要!!condition,对一个变量两次取反
- 用C++重写了OPENCV SURF算法例子
- jQuery 教程 (十一) 实战表单验证与自动完成提示插件 .NET