c#自定义控件属性面板及选择资源设置
博客转移到 http://jacean.github.io/ 继续分享编程经验
因为要做流体布局,但两个控件没办法组合,就做自定义控件。这个控件需要一个text设置文本,一个pic设置图片显示,图片通过选择获取,在属性面板里能够修改。
添加用户控件之后就可以自己随意设置控件内容了,这里说下关于属性的一些设置。
- 自定义控件显示在工具箱的开关:
将true改为false就可以不显示了。[ToolboxItem(true)]
public partial class UserControl1 : UserControl - 自定义控件在工具箱中的图标显示:
可以使用已有控件的图标,[ToolboxBitmap(typeof(System.Windows.Forms.PictureBox))]
public partial class UserControl1 : UserControl如果不想用系统的图标,要使用自己的图标,可以这样(这部分未测试,源于参考文章)
[ToolboxBitmap(typeof(MyPanel), "WindowsApplication1.Images.MyPanel.bmp")]
public class MyPanel : UserControl不过,一定要注意路径,WindowsApplication1.Images.MyPanel.bmp表示,解决方案是WindowsApplication1,目录是Images,文件名是MyPanel.bmp,同时,这个图片必须是“嵌入的资源”(点击文件,右键,属性,有一个文件属性,其中,在生成操作中,可以选择"嵌入的资源")
- 自定义控件在属性面板上的显示开关:
[Browsable(true)]
[Description("属性描述"), Category("属性类别"), DefaultValue("属性默认值,重置时使用")]
public override string Text
{
get { return label1.Text; }
set { label1.Text = value; }
}category设定的是属性在属性面板上显示的类别,当使用了类别时,组件属性和事件可以按逻辑分组显示在属性浏览器中。Category("Appearance")就可以把属性从杂项转移到外观。
(摘抄自参考文章)用于设置默认的值,对于string,bool,int,可以直接写出来,如[DefaultValue(10)],这是可以的,不过,不是这三种类型的话,就比较麻烦,一定要先转化为string才能设置成功。如上面的DarkGray,这是系统定义的颜色,这还是比较好处理的。不过,如果是一些自定义的颜色,如颜色是128,0,128,你应该将128转为16进制,写成0x800080,前缀0x是一定要加的。最后就这样[DefaultValue(typeof(Color), "0x800080")]
还有一种[DefaultValue(typeof(Color), "0, 70, 213")]
如果是字体的话需要[DefaultValue(typeof(Font), "宋体, 9pt")]
这两种特殊情况三种方法本人均未测试。 - 自定义控件属性选择资源:
如果自定义的属性不是文本等输入,是图片之类的就需要类似于picturebox的资源选择了,所以在设置属性的时候使用文件类型来定义,如选择图片的例下[Browsable(true)]
[Description("设置控件图片"), Category("setPic"), DefaultValue(" ")]
public Bitmap setPic
{
get { return (Bitmap)this.pictureBox1.Image; }
set
{
this.pictureBox1.Image = value;
}
}这样的话就会在属性面板的设置中出现选择资源的对话框来选择。
- 自定义控件属性选择下拉列表:
在定义属性的时候需要先设置好枚举值,通过枚举来定义属性,如例下
1 public enum indexEnum
2 {
3 a,
4 b,
5 c
6 }
7 public indexEnum index;
8 [Browsable(true)]
9 [Description("设置index"), Category("Index"), DefaultValue("属性默认值")]
10 public indexEnum Index
11 {
12 get { return index; }
13 set { index = value; }
14 }
附:
参考文章:常用Design属性 【C#】妈妈再也不用担心自定义控件如何给特殊类型的属性添加默认值了,附自定义GroupBox一枚
c#自定义控件属性面板及选择资源设置的更多相关文章
- c# 用户控件,usercontrol,自定义控件属性
1.C#用户控件的使用 2.拖动添加:画面上如需多个usercontrol,添加TableLayoutPanel,然后在工具箱中找到usercontrol,拖到相应框中 3.代码添加:主窗口中有多个T ...
- winform 自定义控件属性在属性面板中显示
Jan.David Nothing is impossible, the word itself says 'I'm possible'!" — Audrey Hepburn winform ...
- Xcode 属性面板添加自定义控件属性
让自定义控件像原生控件一样可以在属性面板配置参数,Apple文档传送 直接上效果图,根据
- Inspector a ProgressBar(定制属性面板)
一.定制进度条 这篇文章主要学习如何在Unity的Inspector中使用ProgressBar 普通属性面板预览 通常我们的属性面板如下 定制属性面板预览 而通过扩展成ProcessBar后 二.内 ...
- XCode属性面板使用说明
Xcode 中Interface Builder 工具 是一个功能强大的“所见即所得”开发工具.本文主要介绍属性面板 和 对象库面板 对象库面板: 提供了所有Cocoa Touch 库给我们定义好的 ...
- Qt编写自定义控件属性设计器
以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用场景需 ...
- 开启Unity项目中VS工程的属性面板
https://www.cnblogs.com/CodeGize/p/7859656.html Unity生成的VS工程一般是无法打开属性面板的.但是事实上,如果使用VS for unity,通过配置 ...
- SharePoint 2013 WebPart属性面板配置
为WebPart添加右侧的属性面板,方便将来对于WebPart的配置,我们只需要在CustomWebPart.cs文件里面,声明一下变量即可: private string url = string. ...
- 根据选中不同的图元来显示不同的属性面板changePropertyPane.html
在现实生活中,我们有很多时候需要根据选中不同的东西来获取不同的属性,并且就算是同类型的东西我们有时也希望显示不同的属性,就像每个人都有不同的个性,可能会有相同点,但是不可能完全相同. 根据这个思想,我 ...
随机推荐
- 94、EventBus框架 ---- 转载
EventBus使用之基础 http://blog.csdn.net/yanbober/article/details/45667363 EventBus框架库代码走读 http://blog.cs ...
- C++学习44 格式化输出,C++输出格式控制
在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式输出一个 整数,对输出的小数只保留两位小数等.有两种方法 ...
- 老师你好。使用cordova生成的hellowold 的安卓5.0版本太高。怎么才可以生成4.4的呢?
你好 在你的应用目录,有个config.xml文件,课程没有介绍每个配置项.你可以增加一项 preference name="android-targetSdkVersion" v ...
- linux驱动学习之Input输入子系统
以前,看过国嵌关于input子系统的视频课程,说实话,我看完后脑子里很乱,给我的印象好像是input子系统驱动是一个全新的驱动架构,疑惑相当多.前几天在网上,看到有很多人介绍韦东山老师的linux驱动 ...
- cocos2d-x 在xcode IOS模拟器中 开启IOS多点触控
在初始化代码中,开启当前层接受触摸 this->setTouchEnabled(true); 在AppController.mm文件中,设置开启多点触控 在- (BOOL)application ...
- X60的BIOS白名单-黑苹果之路
一时兴起装起了黑苹果,用了最古老的thinkpad X60.装完了才发现无线网卡是硬伤,无法驱动,只有淘了个博通的无线网卡,但商家告诉我需要搞定白名单. 于是在商家的帮助下折腾半天,终于搞定. 1.在 ...
- android 隐藏系统键盘
-----------------------------------------已验证----------------------------------- public static void c ...
- 转载 radio值获取
选择控件:select ,radio,checkbox之用jquery获取选中值的小结 博客分类: jQuery select下拉框radio单选按钮checkbox多选框jquery获取选中的值 ...
- 【翻译习作】 Windows Workflow Foundation程序开发-前言
Windows Workflow Foundation程序开发-基于XAML和C#的WF实战技术与例程 ——C#程序员的WF功能与编程接口技术指导 前言 Windows Workflow Founda ...
- 慕课网-安卓工程师初养成-1-3 使用记事本编写Java程序
来源:http://www.imooc.com/video/1501 step1: myProgram.java 源文件 使用记事本编辑 step2: compiler ...