贡献个Winform自定义控件,信用卡、银行卡输入控件;每4个字符分隔显示。其他UI框架可以参考。
2012-04-20 12:29
465 查看
经常在网银交易的时候需要输入卡号,看到输入的卡号都被每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; } } } }
相关文章推荐
- Winform开发框架之肖像显示保存控件的实现
- .net(c#) winform文本框只能输入数字,不能其他非法字符
- winform自定义日期控件,要求可以手动输入日期DatePicker
- WinForm----DataGridview---连接数据库,以及双击一条数据,显示信息到Label控件,也可以是TextBox控件。
- (原创)shell 编程:根据从键盘输入的学生成绩,显示相应的成绩标准,也可以同时输入多个成绩,最多为5 个,以空格分隔。
- JQ实现将字符串的铭文转换成密文存放,并显示密文,密文形成方法是:输入的字母用后4个字母替换,如字母A用其后第4个字符E代替,字母a用e代替。
- 使用draggablegridview开源库添加自定义控件可以显示,添加自定义的layout文件可以显示背景色但是无法显示其控件
- .net(c#) winform文本框只能输入数字,不能其他非法字符(转)
- 文本框里显示提示语言,点击可以输入其他内容
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用10号功能调用。),将其中的小写英文 字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。
- .net(c#) winform文本框只能输入数字,不能其他非法字符
- 利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三
- 2、使用地址表实现如下功能:根据输入的数字1-7,分别显示相应的英文星期名,如果输入其他字符,则重新输入。
- iOS学习总结之UI框架UI之文本输入控件( UITextField)
- iw14.0.50来了,终于可以直接在地址栏输入url打开iw功能页面了;可以自由使用EasyUI等js框架了;显示模式对话框也不再七绕八绕惹人烦了;
- 自定义控件--史上最简单!EditText多行输入并控制最大输入字符,显示剩余输入字符
- 从键盘输入一系列字符(以回车符结束),并按字母、数字及其他字符分类计数,最后显示出这三类的计数结果
- 自定义验证(可以验证输入的是否为数字、浮点数、文本框中字符的长度、日历控件)
- 安卓自定义控件之仅可以显示一行视图的view控件(类似 HorizontalScrollView但不可滑动一行排满不在排)
- 3. 定义10个字节的键盘缓冲区,然后键盘输入字符填满该缓冲区,做如下工作: (1)分别将输入键盘缓冲区的字符按数字,小写字母,大写字母,其他字符进行计数; 分别将这些计数值显示出来。 (2)分别将这