C# 自定义控件一些特性标识
2021/7/9 1:06:55
本文主要是介绍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# 自定义控件一些特性标识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具
- 2024-01-24.NET集成IdGenerator生成分布式全局唯一ID
- 2024-01-23用CI/CD工具Vela部署Elasticsearch + C# 如何使用
- 2024-01-23.NET开源的简单、快速、强大的前后端分离后台权限管理系统