C# 自定义控件一些特性标识
作者:互联网
https://blog.csdn.net/cxu123321/article/details/104812099
https://blog.csdn.net/biyusr/article/details/7239911
是否显示在属性面板上
[Browsable(true)
属性面板上面的说名
[Description("控件颜色"), Category("自定义"), DefaultValue("")]
下拉选择需要的属性时可通过枚举来定义需要的值
public enum luocore { 你,我,他 }
private luocore controleColor;
[Browsable(true)]
[Description("控件颜色"), Category("自定义"), DefaultValue("")]
public luocore ControleColor
{
get { return controleColor; }
set { controleColor = value; }
}
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
,同时,这个图片必须是“嵌入的资源”(点击文件,右键,属性,有一个文件属性,其中,在生成操作中,可以选择"嵌入的资源"
)DesignerSerializationVisibility
表示,是否在*.Designer.cs文件中将设置的代码写出来,也就是是否要实现序列化。默认为
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
表示需要实现序列化。
如果设置为hidden:- [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
- public List<Person> Persons { get; set; }
- 1
- 2
将不会被序列化:
如果自定义控件中有些属性不需要显示在属性面板或者不需要序列化时,建议hidden掉
https://www.cnblogs.com/qingtianhua/p/3524526.html
EditorBrowsable特性 控制智能提示
[EditorBrowsable(EditorBrowsableState.Never)]
他的作用是:在编辑器中指定属性或方法的可浏览状态。
EditorBrowsableState.Never的枚举说明是:该属性或方法始终不能在编辑器中浏览。
意思就是说,让使用者在调用的时候无法智能感知出Object默认的方法
只有在发布DLL后被人引用才可以隐藏方法。同解决方案下的引用无法隐藏
标签:控件,图标,自定义,C#,DesignerSerializationVisibility,MyPanel,public,属性 来源: https://www.cnblogs.com/LuoCore/p/14988648.html