C#自定义控件的设计与调用

article/2025/10/13 5:23:25

  在C#下建立自己的控件库,需用到自定义控件的设计与调用。

一、自定义控件的设计

  自定义控件,步骤如下:

  • 1.点击文件->新建项目->选择Windows控件库
  • 2.编辑控件
  • 3.点击生成->生成 项目名称 ,完成这一步后会在bin或debug目录下看到"项目名称.dll"文件,这个便是你的控件库了。

  具体实操:

1、新建项目

  点击文件->新建项目->选择Windows控件库。

项目名称Ky_ColorHatch

2、界面布局

  组件面板panel1至panel11,按钮 More。

3、定义外部属性

  给控件定义一个外部属性,使我们可以在属性设计视图中对其进行设置。

  • 方法是首先声明一个private 变量 private Color hatchColor;
  • 然后编写set与get方法,也就是对应的属性赋值与取值的方法
        private Color hatchColor = Color.Black;//当前颜色#region  自定义属性[Description("设置当前颜色")] //显示在属性设计视图中的描述[DefaultValue(typeof(Color), "Black")]public Color HatchColor{get { return hatchColor; }set{hatchColor = value;panel1.BackColor = value;}}#endregion

4、自定义事件

  • 创建事件所需的委托
  • 定义一个当颜色改变时触发的ColorChanged事件
  • 编写事件触发方法
  • EventArgs是用户传入的参数,我们这个ColorChangedEventArgs就是继承自这个EventArgs的一个类,目的是用来传递我们选中的颜色给调用方
        #region 自定义事件//事件所需的委托public delegate void ColorChangedEventHandler(object sender, ColorChangedEventArgs e);//当颜色改变时触发事件public event ColorChangedEventHandler ColorChanged;//定义一个ColorChanged事件protected virtual void OnColorChanged(ColorChangedEventArgs e){//事件触发方法if (ColorChanged != null){//判断事件是否为空ColorChanged(this, e);//触发事件}}#endregion/// <summary>/// 颜色改变事件数据/// </summary>public class ColorChangedEventArgs : EventArgs{private Color color;/// <summary>/// 颜色改变事件数据/// </summary>/// <param name="c">改变后的颜色</param>public ColorChangedEventArgs(Color c){color = c;}/// <summary>/// 获取颜色/// </summary>public Color GetColor{get { return color; }}}}

5、与控件进行关联

  • 在panel2至panel11的Click事件中填panel_Click
  • 在panel2至panel11的MouseEnter事件中填panel_MouseEnter
  • 在panel2至panel11的MouseLeave事件中填panel_MouseLeave
  • 双击按钮More的Click事件
  • 编写事件触发程序
        private void More_Click(object sender, EventArgs e){ColorDialog cd = new ColorDialog();if (cd.ShowDialog() == DialogResult.OK){hatchColor = cd.Color;panel1.BackColor = hatchColor;OnColorChanged(new ColorChangedEventArgs(hatchColor));//因为颜色改变所以触发事件}}private void panel_Click(object sender, EventArgs e){Panel p = sender as Panel;if (p != null){hatchColor = p.BackColor;panel1.BackColor = hatchColor;OnColorChanged(new ColorChangedEventArgs(hatchColor));//因为颜色改变所以触发事件}}private void panel_MouseEnter(object sender, EventArgs e){Panel p = sender as Panel;if (p != null){p.BorderStyle = BorderStyle.FixedSingle;}}private void panel_MouseLeave(object sender, EventArgs e){Panel p = sender as Panel;if (p != null){p.BorderStyle = BorderStyle.None;}}

6、编译,生成DLL文件

  在bin\debug\下生成了Ky_ColorHatch.dll

二、自定义控件的调用

  • 新建一个windows窗体应用的项目,如Ky_ColorHatch_test.

  • 点击工具->选择工具项->浏览->选择刚才的那个Ky_ColorHatch.dll文件,这样你便会在你的工具箱中找到你的那个控件
    注意:
    放置Ky_ColorHatch.dll的文件夹不要采用汉字文件夹,否则会出现“没有可以放置在工具箱上的组件”

  • 此时工具栏出现Ky_ColorHatch控件,双击Ky_ColorHatch控件,会在form上出现Ky_ColorHatch控件,放到正确的位置。

  • 编写按钮事件,把控件的选的颜色传到按钮上

        private void button1_Click(object sender, EventArgs e){button1.BackColor = ky_ColorHatch1.HatchColor;}

运行程序:
Ky_ColorHatch_test.exe

三、源程序下载

https://download.csdn.net/download/dalong10/20241758

四、参考资料

1、stg609的博客https://www.cnblogs.com/stg609/archive/2008/03/29/1128411.html


http://chatgpt.dhexx.cn/article/t2365VjG.shtml

相关文章

树形控件

一&#xff0e;分析过程 1.今天就来说说树形控件&#xff0c;什么是树形控件呢&#xff1f;树形控件在Windows系统中是很常见的&#xff0c;例如资源管理器左侧的窗口中就有用来显示目录的树形视图。 树形视图中以分层结构显示数据&#xff0c;每层的缩进不同&#xff0c;层次越…

WPF基本控件简介

默认可见的基本控件有 1、Border 设置控件画边框&#xff0c;2、Button 按钮 3、Calendar 日历 4、Canvas 画布控件 5、Checkbox 复选框 6、Combobox 下拉列表框 7、ContentControl 内容控件 8、DataGrid 显示表格数据 9、DataPicker 日期选择控件&#xff0c;带日历 10、Dock…

labview自定义控件

创建自定义输入控件、显示控件和自定义类型 目录 LabVIEW 2011帮助 版本日期&#xff1a;June 2011 产品编号&#xff1a;371361H-0118 查看产品信息 下载帮助&#xff08;仅限Windows&#xff09; 自定义输入控件和显示控件是对现有前面板对象集的扩展。用户可创建外观与内置L…

Excel 2010 VBA 入门 124 日期选择控件

目录 码 DTPicker控件 DTPicker控件的时间和日期的切换 DTPicker控件的日期输入方式 DTPicker控件的Value属性与Change事件 使用DTPicker控件实现日期选择并赋值给单元格 注册DTPicker控件 在Excel中&#xff0c;经常需要输入日期。为保证输入正确&#xff0c;可以通过一…

vue日期控件

<el-form-item label"有效期限" ><el-col :span"6"><el-form-item><el-date-pickertype"date"placeholder"选择日期"value-format"yyyy-MM-dd 00:00:00"v-model"effectiveStartTime":picker…

QT 布局,控件自适应大小 自动缩放 自动布局

目录 前言 1. 先来说简单的布局控件自适应 说明我们实现了自动布局&#xff1b; 3.通过代码设置控件自动缩放重写resizeEvent 4. 源码&#xff1a;https://upload.csdn.net/creation/uploadResources/86620882 前言 QT版本&#xff1a;Qt5.12.3(msvc2017_64) 有时&#xf…

WindowsFormsHost控件

WPF和WinForms是两个不同的UI框架&#xff0c;都是由Microsoft创建的。 WPF是WinForms的一个更现代的替代品&#xff0c;WinForms是第一个.NET UI框架。 为了在两者之间轻松过渡&#xff0c;Microsoft确保WinForms控件仍然可以在WPF应用程序中使用。 这是通过WindowsFormsHost完…

C#添加第三方控件

C#添加第三方控件 第三方控件操作步骤 在项目开发时&#xff0c;C#自带的控件可能无法满足项目需求&#xff0c;需要引入第三方控件&#xff0c;本文主要介绍在VS2019上如何导入第三方控件。 第三方控件 第三方控件指自定义的控件或者用户控件&#xff0c;它们继承自.NET类库…

qt自定义控件

文章目录 前言一、自定义控件需要的准备二、自定义控件步骤1.创建自定义插件2.添加带ui的类&#xff0c;删当前生成的.h和.cpp&#xff0c;重新添加qt带ui的类。3.编辑自定义控件数据4.使用和运行 总结 前言 如何自定义控件 一、自定义控件需要的准备 QT大多数采用MSVC编译&a…

C#自定义控件VS用户控件

C#自定义控件VS用户控件 1、C#中自定义控件VS用户控件大比拼2、为自定义控件&#xff08;或类&#xff09;的方法属性添加注解2.1、Description&#xff1a;在属性窗口中添加属性及属性说明2.2、Browsable2.3、EditorBrowsable2.4、Category2.5、ToolboxBitmap2.6、DefaultEven…

C# 自定义控件

一 自定义控件 1 自定义控件的三种方式&#xff1a; 1&#xff09;复合控件&#xff1a;将标准控件组合起来 class YourControl:UserControl{}2) 扩展控件&#xff1a;继承于标准控件 class YourControl:Button{}3) 自定义控件&#xff1a;完全地自定义一个控件 class You…

C#窗体控件简介

C#窗体控件简介-选项卡控件 在Windows 应用程序中&#xff0c;选项卡用于将相关的控件集中在一起&#xff0c;放在一个页面中用以显示多种综合信息。选项卡控件通常用于显示多个选项卡&#xff0c;其中每个选项卡均可包含图片和其他控件。选项卡相当于多窗体控件&#xff0c;可…

QStackedWidget 控件

一、简介 1、QStackedWidget 控件相当于一个容器&#xff0c;提供一个空间来存放一系列的控件&#xff0c;并且每次只能有一个控件是可见的&#xff0c;即被设置为当前的控件。 2、常用接口函数&#xff1a; addWidget&#xff1a;向容器中添加控件setCurrentWidget&#xf…

测试会遇到的控件

我们测试一个软件&#xff0c;不管是C/S系统还是B/S系统&#xff0c;都会遇到各种各样的控件。控件是构成应用程序交互界面的基本元素&#xff0c;知己知彼&#xff0c;百战不殆&#xff0c;测试它们就要首先了解它们的特性。这里&#xff0c;我对常见的控件做一个汇总。希望大…

11. Windows应用程序常用控件

Windows应用程序常用控件 1 控件概述1.1 控件的分类及作用1.2 控件的命名规范1.2 控件的相关操作2.1 添加控件2.2 对齐控件2.3 锁定控件2.4 删除控件 3 文本类控件3.1 标签控件&#xff08;Label控件&#xff09;3.2 按钮控件&#xff08;button控件&#xff09;3.3 文本框控件…

第五章 Windows基础控件

一、 控件&#xff08;类&#xff09; 1&#xff0c;常用的控件分类及作用&#xff1a; 2&#xff0c;控件的基本操作&#xff1a; 1&#xff09;添加、删除控件&#xff1b; 2&#xff09;对齐控件。 注意&#xff1a;选择的第一个控件是主控键&#xff0c;其他的控件都与其对…

(3)Android常见界面控件

文章目录 3.1 简单控件的使用3.1.1 TextView控件3.1.2 EditText控件3.1.3 Button控件方法一&#xff1a;布局文件中指定点击事件(不常用)方法二&#xff1a;使用内部匿名类实现点击事件方法三&#xff1a;使用Activity实现OnClickListener接口全部实现代码举例 3.1.4 ImageView…

dreamweaver2020中文版

教程&#xff1a; 1、解压下载获得Dreamweaver 2020中文特别版&#xff0c;双击运行它。 2、由于其默认安装路劲为C盘系统盘&#xff0c;因此这里小编选择自定义。 3、选择想要安装的组件。 4、等待安装完成。 5、当向导安装结束后&#xff0c;点击完成。 6、最后双击桌面快捷…

Dreamweaver(Dw)2021软件下载及安装教程并创建一个网页

1.在微信搜索公众号软件星君&#xff08;如图&#xff09; 2. 2.点开链接找到里面的下载链接复制&#xff08;要求windows10&#xff09; 2、系统必须是Windows 10 64bit 3、保证电脑中有任意一款解压软件 安装步骤 1.找到下载好的安装包&#xff0c;并双击打开【Dw 2021 安装…

Dreamweaver 安装破解

Dreamweaver CS6 Mac破解版 发表于 2013 年 2 月 28 日 介于之前小子分享的Mac版的Adobe的PS CS6和Illustrator CS6&#xff0c;有用户要求小子分享下Dreamweaver&#xff0c;小子当然乐意效劳。 Dreamweaver CS6 是世界顶级软件厂商Adobe推出的一套拥有可视化编辑界面&#x…