如何自定义winform控件,并把它添加到工具箱,供拖动使用

首先,在想要用自定义控件的解决方案中新建一个项目,该项目用来存放所有的自定义控件。

解决方案-右键-添加-新建项目

添加新项目的界面选择Windows窗体控件库,点击确定。

此时,已经添加好了新的项目,默认会有一个自定义的用户控件,如果不打算用它,可以删掉它。

接下来,我们添加自己的自定义控件,这里我以button为例:

右键项目(刚刚添加的MyControl项目)-添加-新建项

在添加新项界面选择自定义控件,并取名MyButton,点击确定。

在弹出的MyButton设计界面上点右键,查看代码,去编辑MyButton的属性

在MyButton.cs文件中,我们需要将MyButton的父类改成我们需要继承的类:Button,并在MyButton()构造函数后面加上初始化的内容

这样我们就继承了button控件,可以在它原来的功能基础上增加自己想要的功能。比如我增加默认的颜色和文字。

然后右键解决方案,重新生成解决方案,把自定义的控件编译成dll文件

然后右键MyControl项目-在文件资源管理器中打开文件夹,在你的平台对应的Debug文件夹下找到MyControl的dll文件,比如我这里的路径是项目路径下的

这时候打开一个界面的设计窗口,我这里打开原本的Form1,把dll文件拖入工具箱的空白处

这样工具箱的常规窗口就有MyButton啦

或者直接在MyButton代码中加入开关,[ToolboxItem(true)]就是自定义控件显示在工具箱的开关,这样设置工具箱中就会直接有MyControl的所有组件啦

此时MyButton就可以跟正常控件一样拖进来使用啦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188914.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记RocketMQ本地开发环境搭建始末

前言 最近工作中涉及到了RocketMQ的应用,为方便开发决定本地搭建一套RocketMQ的使用环境。 果然实践是个好东西... VMware虚拟环境搭建 这个网上有很多教程,只会比我写的详细有条理,这里就不在赘述了。 虚拟机搭建好之后每次重启电脑都无…

js命名规则

变量和函数命名使用驼峰命名法(camelCase),即首字母小写,后续单词首字母大写,例如:myVariable、myFunction。类名使用帕斯卡命名法(PascalCase),即每个单词的首字母都大写…

nginx配置反向代理及负载均衡

目录 1.前端发送的请求,是如何请求到后端服务的1.nginx 反向代理的好处:2.nginx 反向代理的配置方式:3. nginx 负载均衡的配置方式 1.前端发送的请求,是如何请求到后端服务的 1.nginx 反向代理的好处: 提高访问速度 因…

分析一段文字中重复词组,英文版

String text " aaaaabbbacccdaaaabbbbccccaaa"; Pattern patten Pattern.compile("[a-zA-Z]"); // 用Pattern类中的matcher()方法,生成一个匹配器对象,Matcher类是匹配器类 String sbstring text.toString(); Matcher matcher patten.ma…

全系降3万,一把干到底,极越「智取」特斯拉

作者|德新 编辑|王博 11月30日,极越01官宣全系降价3万。 这意味着21.99万起步的极越01 Max,成为这个市场上入门门槛最低的带有城市智能驾驶辅助功能的车型。 要知道这是一台比Model Y大了一圈,全系配置了高阶智驾硬件,全系配高…

Apache HTTPD 2.448 mod_proxy SSRF漏洞(CVE-2021-40438)

任务一: 复现漏洞 任务二: 尝试利用SSRF漏洞,访问重庆邮电大学官网(http://www.cqupt.edu.cn) 1.搭建环境 2.了解这个地方是httpd作为了一个反向代理服务器,也就是先是客户端发送请求给代理服务器,然后…

Neo4j 程序开发 JavaAPI 嵌入式开发模式(头歌)

文章目录 第1关:JavaAPI 嵌入式开发模式任务描述相关知识创建 Neo4j 数据库启动 Neo4j 数据事务创建节点创建节点关系将创建的数据库设置为默认数据库 编程要求测试说明答案代码修改配置文件,更改默认 Neo4j 数据库代码文件 第1关:JavaAPI 嵌…

【文献阅读笔记】关于GANomaly的异常检测方法

文章目录 1、GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training模型主要创新 2、Skip-GANomaly: Skip Connected and AdversariallyTrained Encoder-Decoder Anomaly Detection模型主要创新点 3、Industrial surface defect detection and localization u…

YOLOv8改进 | 2023 | AKConv轻量级架构下的高效检测(可变核卷积)

一、本文介绍 本文给大家带来的改进内容是AKConv(可变核卷积)是一种创新的卷积神经网络操作,它旨在解决标准卷积操作中的固有缺陷(采样形状是固定的),AKConv的核心思想在于它为卷积核提供了任意数量的参数…

RTDETR阅读笔记

RTDETR阅读笔记 摘要 DETR的高计算成本限制了它们的实际应用,并阻碍了它们充分利用无需后处理(例如非最大抑制NMS)的优势。文中首先分析了NMS对实施目标检测的精度和速度的负面影响。(RTDETR是第一个实时端到端的目标检测器。具…

Word 小知识之 docx 和 doc 的区别

下面我们从4个方面为大家总结了有关于docx和doc的区别,一起来看一看: 1. 文件格式 doc和docx的区别中较大的区别就是文件格式不同,一个是二进制一个为XML格式。doc:是早期的Word文档格式,采用二进制文件格式。这种…

ipa应用测试平台怎么开开具发票

控制台-个人中心-发票管理 ●点击申请发票可以开具发票 ●申请发票-填写资料-勾选订单 ●个人发票开具以及公司发票开具 ●提交发票申请 ●等待申请成功开具发票 ●发票开具成功,我们可以开具或者查看发票

overflow-conscious code (模拟ArrayList.grow扩容):

数学问题&#xff1a;newCapacity < minCapacity 和 newCapacity - minCapacity < 0 代表相同的含义吗&#xff1f;答案&#xff1a;是&#xff0c;在计算机中不同&#xff0c;因为数字用的是有限位的补码&#xff0c;也正是因此才会有考虑溢出的代码。 private void …

二分查找与搜索树高频问题

关卡名 逢试必考的二分查找 我会了✔️ 内容 1.山脉数组的峰顶索引 ✔️ 2.旋转数字的最小数字 ✔️ 3.寻找缺失数字 ✔️ 4.优化求平方根 ✔️ 5.中序与搜索树原理 ✔️ 6.二叉搜索树中搜索特定值 ✔️ 7.验证二叉搜索树 ✔️ 基于二分查找思想&#xff0c;可以拓展出很…

conda 安装指定Version的指定Build

入下图&#xff0c;我想装cudnn的7.6.5的指定Build版本cuda10.0_0 应该使用如下命令&#xff1a; mamba install cudnn7.6.5cuda10.0_0 没有mamba用conda install也可以

04 # 第一个 TypeScript 程序

初始化项目以及安装依赖 新建 ts_in_action 文件夾 npm init -y安装好 typescript&#xff0c;就可以执行下面命令查看帮助信息 npm i typescript -g tsc -h创建配置文件&#xff0c;执行下面命令就会生成一个 tsconfig.json 文件 tsc --init使用 tsc 编译一个 js 文件 新…

daima8资源网整站数据打包完整代码(集成了ripro9.1主题,开箱即用)

基于ripro9.1完全明文无加密后门版本定制开发&#xff0c;无需独立服务器&#xff0c;虚拟主机也可以完美运营&#xff0c;只要主机支持php和mysql即可。整合了微信登录和几款第三方的主题文件&#xff0c;看起来更美观一些。站长本人就是程序员&#xff0c;所以本站的代码资源…

PyCharm关闭很慢的解决办法

使用PyCharm2023.2.5的时候碰到了一个问题&#xff0c;每次关闭项目的时候都很慢很慢&#xff0c;在网上查了&#xff0c;有可能是因为缓存的问题&#xff0c;于是试着清除缓存&#xff0c;发现还是没有用&#xff0c;关闭的时候还是很慢&#xff0c;后面看到一种解决办法&…

算法:笛卡尔平面坐标系上,若干连接点形成线,剔除距离小于阈值的点,Kotlin

算法&#xff1a;笛卡尔平面坐标系上&#xff0c;若干连接点形成线&#xff0c;剔除距离小于阈值的点&#xff0c;Kotlin const val THRESHOLD 0.6f //距离小于这个点将被剔除。data class Point(val x: Float, val y: Float)fun removeNearbyPoint(points: List<Point>…

指针概念及应用

指针的相关概念 1.指针是什么&#xff1f; 指针是内存中的一个最小单元的编号&#xff0c;其实就是指地址&#xff0c;对于我们平时口中所讲述的指针&#xff0c;通常指的是指针变量&#xff0c;指针变量是用来存放内存地址的变量。 2.地址与指针 一个32位机器在一个进程中…