winform 自定义控件属性在属性面板中显示的问题

news/2024/11/13 4:30:23/

我们做了自定义控件,在工具箱里拖出来的时候,想要直接在属性面板中直接编辑控件的自定义属性

我们可以用如下标签

 

 

代码
   
<!-- 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)]
表示需要实现序列化。


http://www.ppmy.cn/news/275992.html

相关文章

layui 卡片式列表_笔记-layui选项卡

/*** 注意:选项卡 依赖 element 模块,否则无法进行功能性操作** 相关样式* layui-tab 代表一个选项卡* |-layui-tab-brief 代表简介风格的选项卡* |-layui-tab-card 代表卡片风格的选项卡* |- layui-tab-title 用于包裹选项卡的导航列表* |— layui-this 设置默认选中的导航按…

python 评分卡_评分卡原理及Python实现

信用风险计量模型可以包括跟个人信用评级&#xff0c;企业信用评级和国家信用评级。人信用评级有一系列评级模型组成&#xff0c;常见是A卡&#xff08;申请评分卡&#xff09;、B卡&#xff08;行为模型&#xff09;、C卡&#xff08;催收模型&#xff09;和F卡&#xff08;反…

android控件属性(中文)

1、LinearLayout(线性布局)&#xff1a; 可以分为水平线性&#xff1a;android:orientation " horizontal " 和垂直线性&#xff1a;android:orientation "vertical" 2、RealtiveLayout&#xff08;相对布局&#xff09;&#xff1a; &#xff08;1&…

Android xml 属性大全

第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom 贴紧父元素的下边缘 android:layout_alignParentLeft 贴紧父元素的…

评分卡模型python实现

信用风险计量模型可以包括跟个人信用评级&#xff0c;企业信用评级和国家信用评级。人信用评级有一系列评级模型组成&#xff0c;常见是A卡&#xff08;申请评分卡&#xff09;、B卡&#xff08;行为模型&#xff09;、C卡&#xff08;催收模型&#xff09;和F卡&#xff08;反…

win10服务器文件夹显示不全,如何让Win10文件夹始终显示功能区有哪些方法

如何让Win10文件夹始终显示功能区有哪些方法 腾讯视频/爱奇艺/优酷/外卖 充值4折起 方法一:借助快速访问工具栏 点开快速访问工具栏菜单,点击取消“最小化功能区”即可。 方法二:利用菜单栏右键菜单 在菜单栏空白处单击鼠标右键,菜单中同样点击取消“最小化功能区”。 方法…

华硕计算机在哪里看显卡cpussD,显卡怎么看型号(怎么看华硕显卡的性能档次)...

每台电脑上面都配置了电脑显卡,显卡重要性不言而喻。显卡是电脑内主要的板卡之一,它负责将CPU送来的信息处理为显示器可以识别的信息,送到显示器上形成影像。主机对显示屏幕的任何操作都要通过显卡。电脑显卡性能怎么看呢?下面告诉大家电脑显卡怎么看的简单方法。 每台电脑…

论文 文献引用字体颜色更改为蓝色

为增强学术论文的可读性&#xff0c;论文中的文献引用字体颜色常设置为蓝色。 一个个手动修改未免太过麻烦&#xff0c;在这介绍一种软件自带的实现方法。 主要介绍两种文献管理软件&#xff1a;EndNote和NoteExpress。 EndNote 在论文中插入文献后&#xff0c;点击Endnote的…