WinForm_关于用户控件和自定义控件

C#学习笔记——(27)用户自定义控件创建使用 自定义控件/组件的方法 1、在上一次的笔记中提到了自定义控件的方法,这种方法是自定义的Windows窗体控件库,最后在/Bin文件下生成的是.dll格式文件,将其拖到要使用项目的【工具箱】里就可以直接使用了。 2、本次将记录另一种自定义控件的方法,是在自己写好代码后,编译整个项目,可以直接在工具栏中看到它,没有dll文件,不需要自己添加到工具箱。 从使用上来看,第一种是专门写给别人用的又不想给别人... 阅读详情

转自:http://blog.sina.com.cn/s/blog_3f39ffb50100d5hu.html


1.WinForm中的用户控件继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Controls控件

自定义控件继承自 Control,主要用于开发windows控件的最基本的类,比如 Text,Button 控件

2.生成的用户控件添加到工具箱后默认使用一个齿轮状的图标,以下为设置自定义图标的方法:

  (如果是在类库项目中生成用户控件,默认没有资源文件,需要手动添加资源文件,此时会在项目文件下生成 Resources 文件夹以及 Resource1.resx 文件。双击 Resource1.resx 文件,选择添加资源。此时在 Resources 文件夹下可以找到添加的图标文件,右击图标文件,选择属性,将生成操作项设为嵌入的资源)

  1> 准备16像素宽高,256色的BMP图片,并设置图标文件的BuildingAction(生成操作)属性为嵌入的资源

  2> 修改用户控件类,引用资源文件的图标文件:

     (用户控件类名为: myControl1)

     (System.Drawing.ToolboxBitmap)

     在类体上方添加 [ToolboxBitmap(typeof(myControl1),"Resources.B1.ico")]

WinForm_关于用户控件和自定义控件

  3> 然后生成解决方案,在 bin 目录下即可找到 myControl1.dll 文件

  4> 将 dll 文件添加到工具箱中即可发现用户控件的图标已经为自定义的图标

WinForm_关于用户控件和自定义控件

 

20090724 (入题)最近用到自定义圆角按钮,由于系统按钮为标准矩形,因而这里需要自定义按钮

新建项目--新建项(自定义控件)

继承 Button 类

重写 OnPaint() 方法,使用 GraphicsPath 获取一个带有圆角的矩形路径,进行一些列填充后将当前对象的区域,也就是 Region 属性赋值为带圆角的矩形路径。

WinForm_关于用户控件和自定义控件

工作遇到的问题主要在于〔设计时属性〕

步骤为:

1.创建私有变量;

  private string _name;

2.创建属性;

  public string Name

  {

     get;

     set;

  }

3.为属性添加〔设计时属性〕,诸如:

[Browsable(true)]

[Category("自定义属性")]--用于在控件属性设计器中显示,此设置为对属性进行分类。由于默认不存在这个分类项,则会新建。若不设置此属性,默认新增“杂项”分类项,并将属性置于其下若要将属性置于预定的分类中,引号中间填入默认分类项即可,比如: [Category("外观")],注意这里不区分中英文,“外观”分类项同样可以写作“Appearance”。

[Description("属性描述")]--此属性用于描述属性

[DefaultValue()]--属性默认值,这里的值包含多数数据类型,但是没有枚举类型,比如 Color 类型,这时要使用第二个重载,包括两个参数,第一个为目标类型,第二个为值的字符串表示,例如:

    [DefaultValue(typeof(Color), "#000000")]
        public Color TForeColor

[DefaultEvent()]--属性默认事件

...

注意:

    属性访问器必须使用 get; set; 的格式才能在属性设计器中显示。并且,若属性访问器使用这种方式,必须 get 和 set 同时使用,不能只写某一个。

    若自定义控件源文件与引用控件的项目在同一终端上,在更新了自定义控件的源码后,保存(或重新生成)后,在引用控件的项目中,通过重新生成能够得到最新修改后的自定义控件。

使用枚举的属性:

1.定义枚举

  public enum WeekDay
 {
     Monday,
     Tuesday,
     Wednesday,
     Thurday,
     Friday,
     Thursday,
     Sunday
 }

2.使用枚举定义私有变量和属性访问器

  private WeekDay _today;

  public WeekDay Today

  {

     get;

     set;

  }

这样,在设计器中,此属性将提供枚举值的选项

WinForm_关于用户控件和自定义控件

 

以下是关于 Color 类的枚举属性

WinForm_关于用户控件和自定义控件


c#模拟看板控件_在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件... 在很多时候,我们做一些非常规化的界面的时候,往往需要创建一些用户控件,在其中绘制好一些基础的界面块,作为后续重复使用的一个单元,用户控件同时也可以封装处理一些简单的逻辑。在开发Winform各种类型项目,我都时不时需要定制一些特殊的用户控件,以方便在界面模块中反复使用。我们一般是在自定义的用户控件里面,添加各种各样的界面控件元素,或者封装一些特殊的函数处理共外部调用等。本篇随笔主要介绍基于DevE... 阅读详情

相关推荐

NET 自定义控件 以及 propertyGrid、用户控件 winform,GDI

如果添加 Category, 自定义控件,会放在杂项中。

Kaizen的博客 438

Winform自定义控件与自定义属性的简单使用

本文简单介绍了WinForm自定义控件和自定义控件属性的创建和使用。

JiaHaiMemory的博客 6982

3大对比,10个细节!WinForm用户控件与窗体的异同全揭秘

首先登场的是用户控件(UserControl),它就像是WinForm中的“小积木”,可以包含其他控件(比如按钮、文本框等)以及逻辑代码。你可以把它想象成一个封装好的小模块,里面包含了你想要的一组控件及其交互逻辑。总的来说,WinForm用户控件和窗体各有千秋,它们在不同的场景下发挥着各自的作用。作为技术人员,我们需要根据实际需求灵活应用它们,以构建出高效、易用的应用程序。希望这篇详细的解析能够帮助大家更好地理解这两者之间的区别和联系。如果你还有其他问题或想法,欢迎随时交流讨论哦!怎么样?

java专栏 928

在Winform界面使用自定义用户控件及TabelPanel和StackPanel布局控件

在很多时候,我们做一些非常规化的界面的时候,往往需要创建一些用户控件,在其中绘制好一些基础的界面块,作为后续重复使用的一个单元,用户控件同时也可以封装处理一些简单的逻辑。在开发Winform各种类型项目,我都时不时需要定制一些特殊的用户控件,以方便在界面模块中反复使用。我们一般是在自定义的用户控件里面,添加各种各样的界面控件元素,或者封装一些特殊的函数处理共外部调用等。本篇随笔主要介绍基...

whyrookie的博客 1047

C# WinForm用户控件 vs 窗体:3大区别 + 4个使用场景 = 完美掌握!

首先来聊聊用户控件。用户控件就像是WinForm中的“小积木”,它继承自类,可以包含其他控件(比如按钮、文本框等)和逻辑代码。你可以把它想象成一个封装好的小模块,里面包含了你想要的一组控件及其交互逻辑。总的来说,WinForm用户控件和窗体各有千秋,在不同的情境下发挥着各自的作用。作为开发者,我们需要根据实际需要灵活运用这两种工具,以构建出既高效又易于维护的应用程序。希望这篇文章能够帮助大家更好地理解和区分这两个重要概念。如果你还有任何疑问或者想法,请随时留言交流哦!

java专栏 1601

YOLOv8使用设备摄像头实时监测

YOLOv8使用设备摄像头实时监测

Joining667的博客 4187

c# winform用户控件(UserControl)自定义属性字段和事件

C#许多事情都和属性字段、事件有关系,大部分的事情我们可以通过winform控件自带的属性字段和事件来完成,但如果我们自己新建了一个自定义控件,我们该如何定义自己想要的属性字段和事件呢?

weixin_38582851的博客 2573

vnpy_ctp源码下载后转变为python可用的处理过程

vnpy_ctp源码下载后在window中编译使用

m0_37967652的博客 3327

Winform自定义控件和用户控件

2、器件体自定义控件。

qq_27474555的博客 864

BL0910-从零到一:多路交/直流电能计量的实战配置与校准

本文详细介绍了BL0910芯片在多路交直流电能计量中的实战应用。从硬件连接、SPI通信配置,到软件初始化、核心寄存器设置,再到偏置与增益校准,提供了完整的配置与校准指南。文章重点阐述了直流测量模式的切换要点及数据读取的工程化处理,帮助开发者快速实现高精度、多通道的电能监控方案。

rice5的博客 560

Winform使用TreeView控件实现带复选框的三态树

刚接触c#,项目中用到Treeview实现三态,即选中、未选中、半选中状态,并且要求父子节点选择联动,效果类似下图网上有很多例子,于是研究了一下,结合网上大佬们的例子,所以在这里记录一下。首先新建一个Winform工程拖个TreeView控件,然后运行。。。嗯。。。加点数据吧。private void CreateTree() { TreeNode anime = new TreeNode...

laoyezha的博客 2万+

WinForm用户控件和自定义控件的异同;

1.转自:http://blog.chinaunix.net/uid-20476365-id-1942444.html 复合控件是封装在公共容器内的 Windows 窗体控件的集合。这种控件有时称为“用户控件”。包含的控件称为“构成控件”。   复合控件包含与每个包含的 Windows 窗体控件相关联的所有固有功能,允许您有选择地公开和绑定它们的属性。复合控件还提供了大量的默认键盘处理功能

threadroc的专栏 1847

Anaconda镜像源切换全攻略:从清华源到恢复默认设置的完整流程

本文详细介绍了Anaconda镜像源的管理与优化,重点讲解了如何配置清华源以提升国内下载速度。内容涵盖镜像源工作原理、清华源详细配置步骤、多源管理策略、常见问题排查以及如何安全恢复默认设置,帮助用户构建完整的镜像源管理体系。

weixin_28828243的博客 1020

Winform 窗体拆分、用户自定义控件、动态加载控件、控件居中

        对于Winform好久没有碰了,估计应该有一年了、大概也忘完了,现在开始复习复习根据目前项目的需求先从布局开始,果图如下: 个人觉得主要用到的知识点有以下几点:窗体拆分、用户自定义控件、动态加载控件、控件居中。下面说一下自己的实现步骤:1.       拆分窗体a)         新建一个窗体,设置为最大化。属性WindState: Maximiz

sz_bdqn的专栏 9643

通过PXE的方式实现Ubuntu 24.04 自动安装

之前都是通过PXE来自动化安装Redhat系列的,例如:Rocky9、Rocky10、CentOS7、银河麒麟 Kylin-V10、Kylin-V11、OpenEuler 24.03等。现在安装Ubuntu系列的跟红帽的不太一样,所以在这里介绍下。

邢宇宇的博客 1490

把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发

2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 152

winform 自定义控件(官网文档学习笔记)

winform自定义控件

qq_29274669的博客 1392

JAX/JAXlib GPU 加速版本安装教程(CUDA)

本文介绍了在Windows WSL2+Ubuntu22.04环境下配置JAX/JAXlib GPU加速版本的详细步骤。使用RTX 4060显卡,安装CUDA 12.4和cuDNN 8.9.7驱动,通过Miniconda创建Python 3.9虚拟环境。具体步骤包括:安装Miniconda、配置CUDA环境变量、安装cuDNN驱动、下载并安装JAX/JAXlib。最后通过测试代码验证GPU加速功能,成功检测到GPU并完成矩阵运算。整个过程配有详细命令和截图说明,适合需要搭建JAX GPU开发环境的用户参考。

猿小白的博客 624

C# WinForm自定义通用分页控件

Winform 自定义控件--通用分页控件 C/S通用 .Net FrameWork

bsx133的博客 2650

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C# WinForm中添加用户控件

有的时候默认提供的工具

Hamster 1万+

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

1 自定义控件与用户控件区别 WinForm中, 用户控件(User Control):继承自 UserControl,主要用于开发 Container 控件,Container控件可以添加其他Controls控件 自定义控件(Custom Control):继承自 Control,主要用于开发windows控件的最基本的类,比如 Text,Button 控件 2 要开发自...

dianjin3567的博客 136

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【亲测免费】 让你的Winform应用焕然一新:C自定义控件之WinForm美化指南

让你的Winform应用焕然一新:C#自定义控件之WinForm美化指南 去发现同类优质开源项目:https://gitcode.com/ 在现代软件开发中,用户体验(UX)和界面美观度(UI)是决定应用成败的关键因素之一。然而,传统的C# WinForm应用程序往往因为系统自带控件的局限性,难以满足开发者对美观和用户体验的高要求。为了解决这一痛点,我们推出了C#自定义控件之WinForm美化指南...

gitblog_09812的博客 866
上一篇: C#关闭pinvokestackimbalance异常
下一篇: 去掉VASSISTX的红色下划线
「已注销」
博客等级 码龄14年 116粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值