项目创建
创建项目时要去选择类库
然后去删除这个Class1.cs
文件
添加新项
在添加新项时去选择组件类
会得到:
删除这段代码
public Component1(IContainer container){container.Add(this);InitializeComponent();}
会变成:
修改继承 ,这里我选择的是继承Button
, 不过这里是没有的 ,需要添加引用—>程序集
去寻找System.Windows.Forms
添加引用即可 ,这里就已经可以正常使用了
自定义控件创建
可以引用图片资源 ,但是这里默认是没有的 ,需要自己去添加
添加:右键属性 ,点击创建即可
然后就是引入资源文件了
创建枚举
, 在public partial class ButtonN : Button {}
的上方去选择创建 ,也就是跟他同一个等级
/// <summary>/// <summary>/// 按钮图标/// </summary>/// </summary>public enum ButtonImage{/// <summary>/// 没有图标/// </summary>None,/// <summary>/// 确认图标/// </summary>Check,/// <summary>/// 关闭图标/// </summary>Close,/// <summary>/// 取消图标/// </summary>Cancel,/// <summary>/// 退后图标/// </summary>Back,/// <summary>/// 向下图标/// </summary>Down,/// <summary>/// 前进图标/// </summary>Go,/// <summary>/// 向上图标/// </summary>Up,/// <summary>/// 文件夹图标/// </summary>Folder,/// <summary>/// 刷新图标/// </summary>Refresh,/// <summary>/// 设置图标/// </summary>Setting,/// <summary>/// 文件打开图标/// </summary>FolderOpen,/// <summary>/// 文件删除图标/// </summary>DocumentDelete,/// <summary>/// 文件图标/// </summary>Document,/// <summary>/// 文件编辑图标/// </summary>DocumentEdit,/// <summary>/// 信息图标/// </summary>Info,/// <summary>/// 文件添加图标/// </summary>DocumentAdd,/// <summary>/// 全局图标/// </summary>Gobal,/// <summary>/// 计算图标/// </summary>Calculator,/// <summary>/// 日期图标/// </summary>Calendar,/// <summary>/// 打印图标/// </summary>Printer}
去选择使用
private ButtonImage buttonImage=ButtonImage.None;[Browsable(true)][Category("自定义属性")][Description("设置或获取按钮样式")]public ButtonImage ButtonImage{get { return buttonImage; }set { buttonImage = value;switch (buttonImage){case ButtonImage.None:this.Image = null;this.TextAlign = ContentAlignment.MiddleCenter;break;case ButtonImage.Check:this.Image = Properties.Resources.check;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Close:this.Image = Properties.Resources.close;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Cancel:this.Image = Properties.Resources.cancel;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Back:this.Image = Properties.Resources.back;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Down:this.Image = Properties.Resources.down;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Go:this.Image = Properties.Resources.go;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Up:this.Image = Properties.Resources.up;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Folder:this.Image = Properties.Resources.folder;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Refresh:this.Image = Properties.Resources.refresh;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Setting:this.Image = Properties.Resources.setting;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.FolderOpen:this.Image = Properties.Resources.folder_open;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.DocumentDelete:this.Image = Properties.Resources.document_delete;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Document:this.Image = Properties.Resources.document;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.DocumentEdit:this.Image = Properties.Resources.document_edit;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Info:this.Image = Properties.Resources.info;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.DocumentAdd:this.Image = Properties.Resources.document_add;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Gobal:this.Image = Properties.Resources.web;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Calculator:this.Image = Properties.Resources.calculator;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Calendar:this.Image = Properties.Resources.calendar;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;case ButtonImage.Printer:this.Image = Properties.Resources.printer;this.ImageAlign = ContentAlignment.MiddleLeft;this.TextAlign = ContentAlignment.MiddleRight;break;default:break;}}}}
自定义控件库使用
首先设置好之后需要重新设置重新生成解决方案
, 然后在工具箱中就能够使用了
这里可以直接拖动 ,然后去选择这个自定义属性 ,到这里基本就已经算是基本完成了