C制作WinForm用户自定义控件实例教程
更新时间:2023-05-24 09:06:01 阅读量: 实用文档 文档下载
C#制作WinForm用户自定义控件实例教程
本文将教大家如何使用C#开发WinForm用户自定义控件,自定义控件有好多好处,下面请跟本文一同来学习下吧。
.Nt用户自定义控件继承UserControl类,设计很简单的,像平时在窗体上拖控件一样。
操作步骤:
1. 建立一个工程,添加用户控件。
2.在打开的窗体内输入控件名称,如:"ucButton",按确定按钮。接下来在空白区域拖放3个.Net控件。
如下图:
3.代码
C# code
/// <summary> /// C#.Net 设计用户自定义控件 /// </summary> /// </summary>
[ToolboxBitmap(typeof(CustomControl.ucButton), "ucButton.bmp")] public partial class ucButton : UserControl { private bool _IsFocused = false; //标记按钮是否为焦点状态 public ucButton() { InitializeComponent(); this.DoHideFocusedTag(); this.MyCatpionText = ; } private EventHandler _OnButtonClick = null; private string _MyCatpionText = "ucButton1"; /// <summary> /// 按钮标题 /// </summary>
[EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)]
[DefaultValue("ucButton1")] public string MyCatpionText { get { return _MyCatpionText; } set { _MyCatpionText = value; lblCaption.Text =
_MyCatpionText; } } /// <summary> /// 用户自定义Click事件 /// </summary>
[EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)] public event EventHandler OnButtonClick { add { _OnButtonClick = new EventHandler(value); } remove { _OnButtonClick -= new
EventHandler(value); } } private void lblCaption_Click(object sender, EventArgs e) { //转移Click事件, 触发用户自定义事件 if
(_OnButtonClick != null) _OnButtonClick(this, e); } private void
lblCaption_MouseDown(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily,
lblCaption.Font.Size, FontStyle.Bold); } } private void
lblCaption_MouseUp(object sender, MouseEventArgs e) { if (_IsFocused) { lblCaption.Font = new Font(lblCaption.Font.FontFamily,
lblCaption.Font.Size, FontStyle.Regular); } } private void
ucButton_SizeChanged(object sender, EventArgs e) { lblUnderLine.Top = this.Height - 1; lblUnderLine.Width = this.Width - 15; } /// <summary> /// 还原按钮状态 /// </summary> public void DoHideFocusedTag() { this.pictureBox1.Image =
global::vjsdn.CustomControl.Properties.Resources.GrayTag;
this.lblUnderLine.Visible = false; lblCaption.ForeColor = Color.Black; } /// <summary> /// 设计按钮为焦点状态 /// </summary> public void
DoShowFocusedTag() { this.pictureBox1.Image =
global::vjsdn.CustomControl.Properties.Resources.FosedTag;
this.lblUnderLine.Visible = true; lblCaption.ForeColor = Color.Blue; } private void ucButton_MouseEnter(object if
(this.Parent != null) { foreach (Control c in this.Parent.Controls) { if (c is ucButton) (c as ucButton).DoHideFocusedTag(); } }
this.DoShowFocusedTag(); _IsFocused = true; }
[EditorBrowsable(EditorBrowsableState.Always)] [Browsable(true)]
[Description("")] public Label MyCaption { get { return lblCaption; } } private void lblCaption_MouseEnter(object sender, EventArgs e) { this.ucButton_MouseEnter(sender, e); }
4. 按F5编译项目,建立一个测试窗体,在控件工具栏会看到有个齿轮图标的项目。
在窗体上拖3个ucButton。
5.设置按钮标题及事件。
就这么简单,然后按F5运行下程序就可以看到自定义控件的效果了。
正在阅读:
免费传奇辅助刺杀挂10-03
谈骨气03-18
盾构施工风险源分析08-19
C基本概念(选择题)10-28
热网系统操作规程05-19
量子力学习题12-13
有限合伙合伙协议范本04-15
第1章三角函数测试1(苏教版必修4)03-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 控件
- 实例
- 定义
- WinForm
- 制作
- 教程
- 用户
- 六年级数学下册知识点归纳整理
- 《概率论与数理统计》(复旦大学出版社)第一章习题答案
- rfc1951.DEFLATE Compressed Data Format Specification version 1.3
- 汽车行业CRM解决方案介绍
- (新课标)2020届高考物理一轮总复习随堂训练第二章相互作用第6讲实验验证力的平行四边形定则(必修1
- 如何实行弹性工作时间制度
- 中国伦理学会慈孝文化专业委员会将慈孝文化带进高校
- 佛曰-爱情经典禅语
- 刘桥教育辅区2014-2015第一学期期末考试一、二年级阅卷名单
- 4.5.4聚氨酯涂膜屋面防水层施工作业指导书
- 2012年山东卷高考语文试题(含答案)
- 福禄克112万用表校准步骤
- 企业过程工作流的瓶颈管理
- 基于库存管理领域的软件复用技术
- Mirror,Mirror---What do I See
- 华硕笔记本电脑BIOS设置全攻略
- 信息管理学选择题题库
- 制造业产品成本标准核算表(模板)
- 最新最经典的业务流程梳理、优化及重组
- 《中国现代医学杂志》投稿须知