网站首页 > 博客文章 正文
哈喽,你好啊,我是雷工!
前面通过对TextBox文本框进行二次封装,熟悉了.NET控件二次封装的过程。
这节继续练习.NET控件的二次封装,这节练习封装的控件是下拉框
下面是练习笔记。
01 效果演示
①本次练习实现功能是当下拉框未选择时,在后面有图标闪烁提示,鼠标移到图标上会显示提示文本:还未选中任何项!
②当正常选择,非未选时,会弹出登录成功;
02 实现步骤
2.1、添加组件类
在上节的基础上,这里继续在LeiGongCotrols下添加组件类,命名为【ComBoxExtend】。
2.2、修改继承
首先点击【切换到代码视图】。
然后修改其继承自ComboBox,然后添加引用关系,引用并在命名空间添加上:
using System.Windows.Forms;
2.3、添加 控 件
在工具箱中找到ErrorProvider,拖动到设计视图。
2.4、非 空 验证
这里扩展也以非空验证举例,扩展自带非空验证,当为空时提示符号,和文字;
非空验证的代码如下:
/// <summary>
/// 非空验证
/// </summary>
/// <returns></returns>
public int BeginCheckEmpty()
{
if(this.SelectedIndex==-1||this.Text.Trim().Contains("请选择"))
{
this.errorProvider.SetError(this, "还未选择任何选项!");
return 0;
}
else
{
this.errorProvider.SetError(this,"");
return 1;
}
}
2.5、UI界面
测试界面还是以之前的一个练习项目的登录界面为底,添加扩展的控件;
在之前的界面中添加一项【选择身份】,用来选择是管理员登录还是普通用户登录。
如图将扩展的控件ComboBoxExtend拖到界面中合适的位置。
2.6、登录按钮
在登陆按钮的事件代码中添加上该项的检查
代码如下:
//登录按钮事件
private void btnLogin_Click(object sender, EventArgs e)
{
int a1 = this.txtAccount.BeginCheckEmpty();
int a2 = this.txtPwd.BeginCommonValidate("^(?![^a-zA-Z]+$)(?!\\D+$).{8,16}#34;, "密码需包括数字和字母且长度在8-16之间");
int b = this.comboBoxExtend1.BeginCheckEmpty();
int result = a1 * a2*b;
if(result==1)
{
MessageBox.Show("登录成功!", "雷工提示");
}
}
03 后记
以上控件的二次封装只是扩展了验证功能,实际项目中可以根据需要进行功能的扩展,主要步骤都是这么个步骤。
对该练习感兴趣,想要拿到源码试试的同学可以直接联系小编获取。
觉得有帮助欢迎点赞+留言+转发,谢谢。
猜你喜欢
- 2024-10-24 Qt Examples——QSlider(qt qcompleter)
- 2024-10-24 正点原子I.MX6U嵌入式Qt开发指南:第七章《Qt控件 2》
- 2024-10-24 销售订单管理,Excel表格模板演示
- 2024-10-24 抓大放小,瞅瞅 Qt 的几个基础模块
- 2024-10-24 WPF --- 如何重写WPF原生控件样式?
- 2024-10-24 Python入坑系列-pyside6桌面编程之border边框
- 2024-10-24 1.3 MyFirstWidget代码讲解及实用编程技巧分享
- 2024-10-24 在WPF 中想要在表格的同一列上显示多个表头
- 2024-10-24 Qt模型视图结构_代理(犀牛缩放视图后看不见模型了)
- 2024-10-24 《XAML简介及常用控件》(xaml基本语法)
你 发表评论:
欢迎- 05-30springboot 集成redisson 以及分布式锁的使用
- 05-30去哪儿技术面:10亿数据如何最快速插入MySQL?
- 05-30redis介绍
- 05-30redission YYDS
- 05-30手把手教你springboot集成mybatis
- 05-30mybatis根据表逆向自动化生成代码:自动生成实体类、mapper文件
- 05-30越来越大的微信小程序
- 05-30SpringBoot之数据访问——访问SQL数据库!
- 422℃用AI Agent治理微服务的复杂性问题|QCon
- 420℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 401℃初次使用IntelliJ IDEA新建Maven项目
- 399℃Maven技术方案最全手册(mavena)
- 394℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 389℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 389℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 384℃IT全明星|IntelliJ IDEA学习笔记(四、idea中怎么创建maven项目)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)