贡献个Winform自定义控件,信用卡、银行卡输入控件;每4个字符分隔显示。其他UI框架可以参考。
1.贡献个Winform自定义控件,信用卡、银行卡输入控件;每4个字符分隔显示。其他UI框架可以参考。
2.印章WinForm自定义控件封装,提供源码下载3.Windows高速定时器,多媒体定时器winmm.dll库的使用4.理解SynchronizationContext,如何在Winform里面跨线程访问UI控件5.C#winform程序关闭计算机的正确姿势6.WinForm触摸屏程序功能界面长时间不操作自动关闭回到主界面7.分享Winform datagridview 动态生成中文HeaderText8.Winform让扫描枪听话,防止在有焦点的地方就扫码输入的尴尬9.WinForm调用钉钉获取考勤结果10.C# Winform 实现Ajax效果自定义按钮11.C#Winform 自定义透明按钮和单窗体模块化实现12.C#Winform设计的通用标签设计器13.C#Winform使用mysql作为本地数据库14.C#winform自定义控件模拟设计时界面鼠标移动和调节大小、选中效果15.我在winform项目里使用“Windows I/O完成端口”的经验分享16.一次人脸识别ViewFaceCore使用的经验分享,看我把门店淘汰下来的POS机改成了人脸考勤机经常在网银交易的时候需要输入卡号,看到输入的卡号都被每4个字符分隔显示,这样很方便操作者核对。最近在弄WinForm的项目,赶紧也实现一个。要的快来!
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; namespace BarCodeCommon { /// <summary> /// 信用卡、银行卡,卡号输入控件;也可以用来输入手机号,4个字符分隔一下。 /// </summary> public partial class BankCardNoInputTextBox : TextBox { public override string Text { get { return base.Text.Replace(" ",""); } set { base.Text = value; } } public BankCardNoInputTextBox() { InitializeComponent(); Font = new Font("幼圆", 10F, FontStyle.Bold); ForeColor = Color.DarkBlue; } protected override void OnTextChanged(EventArgs e) { if (SelectionStart > 4) { string result = string.Empty; var tmpTxt = this.Text.Replace(" ", "").ToArray(); int cnt = Convert.ToInt32(Math.Ceiling((double)tmpTxt.Length / 4)); for (int i = 0; i < cnt; i++) { var fourChar = tmpTxt.Skip(i * 4).Take(4); result += string.Join("", fourChar) + " "; } Text = result; SelectionStart = result.Length-1; } } protected override void OnKeyPress(KeyPressEventArgs e) { char c = e.KeyChar; //如果是ctrl + c 、ctrl + v、ctrl + x if (c.Equals((char)3) || c.Equals((char)22) || c.Equals((char)24)) { return; } //判断是否是数字 bool blA = !(c >= 48 && c <= 57) && c != 8 && c != 43 && c != 45 && c != 46; //判断是否超过小数点的位数,判断是否会出现数据类型冲突 bool blC = (c == 43 || c == 45) && (this.Text.IndexOf("+") >= 0 || this.Text.IndexOf("-") >= 0) && this.SelectedText != "+" && this.SelectedText != "-"; if (blA || blC) { e.Handled = true; return; } } } }
作者:数据酷软件
出处:https://www.cnblogs.com/datacool/archive/2012/04/20/BankCardNoInputTextBox_Winform.html
关于作者:20年编程从业经验,持续关注MES/ERP/POS/WMS/工业自动化
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明。
联系方式: qq:71008973;wx:6857740733
基于人脸识别的考勤系统 地址: https://gitee.com/afeng124/viewface_attendance_ext
自己开发安卓应用框架 地址: https://gitee.com/afeng124/android-app-frame
WPOS(warehouse+pos) 后台演示地址: http://47.239.106.75:8080/
合集:
Winform相关
标签:
Winform自定义控件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?