• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

??怎样控制textBoxs中录入的数据?? c/s

csharpbase 2004-10-25 07:44:03
1.在身份证号码录入的时候,保证为15位或者18位的阿拉伯数字
2.保证Email的正确录入
3.怎么实现在textBoxs中录入的数据为字符串首必须为英文,后面的必须为英文或者阿拉伯数字,且不能为特殊字符?

这里我指的是Windows 应用程序开发,不是B/S模式的.

三个问题,这里先感谢各位了?
...全文
91 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
csharpbase 2004-10-28
up
回复
csharpbase 2004-10-26
up
回复
csharpbase 2004-10-25
to:shuker(我是一只小花猪) 先谢谢你了,不过我得研究一下!
回复
shuker 2004-10-25
public class clsStrictedTextBox : System.Windows.Forms.TextBox
{
private string m_strOriginal;
private string m_strCharSet;
private string m_strErrorMessage;
private bool m_bRemoveMsg;
private bool m_bCurrencyMode;
private bool m_bRemoveValueChanged;
private System.Globalization.CultureInfo m_ci;

// true for 可以输入的值必须在charset中, false for 可以输入的值一个都不能出现在charset中
private bool m_bIsInCharSet;

public clsStrictedTextBox()
{
this.m_ci = new System.Globalization.CultureInfo("zh-CN");
this.m_bRemoveMsg = false;
this.m_bCurrencyMode = false;
this.m_bRemoveValueChanged = false;
this.m_strOriginal = "";
this.m_bIsInCharSet = true;
this.m_strCharSet = "";
this.m_strErrorMessage = "";
this.TextChanged += new System.EventHandler(this.OnTextChanged);
this.Leave += new System.EventHandler(this.OnTextBoxLeave);
this.Enter += new System.EventHandler(this.OnTextBoxEnter);
}

/// <summary>
/// 这个函数用来设置字符集和标志
/// </summary>
/// <param name="strCharSet"></param>
/// <param name="bIsIn"></param>
public void SetCharSet(string strCharSet, bool bIsIn)
{
this.m_strCharSet = strCharSet;
this.m_bIsInCharSet = bIsIn;
}

public void SetErrorMessage(string strErrorMessage)
{
this.m_strErrorMessage = strErrorMessage;
}

public void RemoveHook(bool bRemove)
{
this.m_bRemoveMsg = bRemove;
}

public void SetCurrencyMode(string strErrorMessage)
{
this.m_bCurrencyMode = true;
this.m_strCharSet = "0123456789.";
this.m_bIsInCharSet = true;
this.m_strErrorMessage = strErrorMessage;
this.m_bRemoveValueChanged = true;
}

private void ShowErrorMessage()
{
if(this.m_strErrorMessage.Trim ().Length != 0)
System.Windows .Forms .MessageBox.Show (this.m_strErrorMessage);
}

private void OnTextChanged(object sender, System.EventArgs e)
{
if(this.m_bRemoveMsg || this.m_bRemoveValueChanged)
return;

if(this.m_strCharSet.Length == 0)
return;

bool bFind = false;

foreach(char c in this.Text)
{
if(((this.m_bIsInCharSet == true) && (m_strCharSet.IndexOf(c, 0)<0)) ||
((this.m_bIsInCharSet == false) && (m_strCharSet.IndexOf(c, 0)>=0)))
{
bFind = true;
break;
}
}

if(bFind == true)
{
int temp = this.SelectionStart;
this.Text = this.m_strOriginal;
this.SelectionStart = (temp-1)>=0 ? temp-1 : 0;
if(this.m_bCurrencyMode == false)
this.ShowErrorMessage ();
}
else
this.m_strOriginal = this.Text;
}

private void OnTextBoxEnter(object sender, System.EventArgs e)
{
if(this.m_bRemoveMsg || (this.m_bCurrencyMode == false) || (this.Text.Trim().Length == 0))
return;

try
{
double dCurrency = double.Parse(this.Text.Trim(),System.Globalization.NumberStyles.Currency, this.m_ci);

this.Text = dCurrency.ToString("F");

this.m_bRemoveValueChanged = false;
}
catch(Exception)
{
this.Focus();
this.ShowErrorMessage();
}
}

private void OnTextBoxLeave(object sender, System.EventArgs e)
{
if(this.m_bRemoveMsg || (this.m_bCurrencyMode == false))
return;

if(this.Text.Trim().Length == 0)
{
this.Text = "0";
}

try
{
double dCurrency = double.Parse(this.Text.Trim());

this.m_bRemoveValueChanged = true;

this.Text = dCurrency.ToString("C", this.m_ci);
}
catch(Exception)
{
this.m_bRemoveMsg = true;
this.Focus();

this.ShowErrorMessage();
this.m_bRemoveMsg = false;
}
}
}
回复
shuker 2004-10-25
给你一段代码参考一下
回复
csharpbase 2004-10-25
首先对hglai(hglai)和CHONGLOU(重楼)的关注表示感谢!

但本人对正则表达式不熟悉

请问各位能不能给一个正则表达式,让我试试??

先感谢了!
回复
CHONGLOU 2004-10-25
算法问题,不算难,再想想。
回复
hglai 2004-10-25
1.在身份证号码录入的时候,保证为15位或者18位的阿拉伯数字
用javascript和c#都可以实现
javascript用text1.value.lenght()!=15 ||text1.value.length()!=18{}
c用length,和java差不多


2.保证Email的正确录入
用个验证函数,或者用正则表达试

3.怎么实现在textBoxs中录入的数据为字符串首必须为英文,后面的必须为英文或者阿拉伯数字,且不能为特殊字符?
通用,正则表达式
回复
相关推荐
Control-flow Enforcement Technology Preview 2.0 spec
Intel CFI技术手册。 Intel CFI从CPU层次检测和防止ROP/JOP攻击,主要包含shadow stack和endbranch两项技术。 比软件层面的防御方法,如微软的CFG,更有效。目前Intel最新编译器已经支持此技术
QT/C++从新手到老手系列之QT基础篇
本系列课程励志于带领你学习QT5/C++,从开发环境(QTCreator和VS2013两种)搭建到实际项目实战,从入门到精通。每一个部分均有理论知识介绍、接口讲解、实例代码讲解,讲解过程中不断穿插老师在开发过程中遇到的问题及解决方法。本阶段主要学习Qt开发环境搭建(QTCreator及VS)、程序的发布、GUI控件的属性、方法、布局管理、容器类、QT事件处理等,学完本阶段后可以开发小型的应用程序。 本阶段主要完成Qt开发环境搭建、程序的开发和发布、基于Widget的图形控件属性和方法的使用、布局管理、容器类、QT事件处理等几个方面知识的学习,通过上述几个方面知识的学习,可以开发一个小型的应用程序。
后备电池及储能电池巡检白皮书.pdf
后备电池及储能电池巡检白皮书,施耐德电气主编的,数据中心电池巡检白皮书。
CListControl设置颜色
CListControl类派生,设置单元格颜色,丰富功能
Linux系统管理员/网络管理员(PDF版)
两本非常好的Linux系统学习的书 系统管理主要介绍Linux系统的结构、管理、命令等 网络管理主要从网络协议角度出发阐述Linux的网络功能
STM32F103中文数据手册
这个里面包含了STM32F103的各种型号的数据手册,方面理解
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer)
WPF中用于嵌入其他进程窗口的自定义控件(AppContainer) 具体见博文:http://blog.csdn.net/zzzwwwppp11199988899/article/details/78131292
MSP430_RTC模块学习总结
这是自己在学习MSP430时,对RTC模块的总结,希望可以帮助刚入门者
CIET-2019-0504 数据中心运维管理人才标准.pdf
数据中心运维管理,人才标准,欢迎查看共同学习。
轻松学Linux系列课程
从0开始,Linux云计算系列课程,包含Linux初级运维、运维、初级架构师、云计算运维及开发..... a:0:{}
QT实战之监控回看系统
本课程基本Qt for windows平台下开发的监控回看界面程序,通过选择界面上的时间和日期可以准确定位观看过去的某一年某一日某个时刻的监控画面,支持对接第三方海康设备的功能,同时也能对于学习QT有很大的帮助。 学会对接第三方设备,学会QT开发,学会界面布局,学会界面设计。
初级学习ArcGIS Engine视频课程
全局讲解ArcGIS Engine开发课程,初级学习 学会ArcGIS Engine 二次开发
webrtc demo使用方法
谷歌webrtc demo的使用教程,webrtc源代码自行从官网下载,该教程只给出了源代码详细的使用方法,包括如何编译
朴素贝叶斯算法做文本分类-代码
https://blog.csdn.net/zzZ_CMing/article/details/89478436 朴素贝叶斯算法做文本分类,用的是谭松波酒店语料。
FANUC的3210密码破解软件
FANUC 3210 密码破解软件,读取SRAM备份文件,不需要注册,完全免费。
C语言及程序设计初步
课程针对没有任何程序设计基础的初学者,全面介绍C语言及利用C语言进行程序设计的方法。课程注重知识的传授,更关注学习者能够通过实践的方式,真正学会利用C语言解决问题,奠定程序设计的基础。为此,专门设计了实践方案,指导学习者在听讲的同时,有效完成实践。讲课中还适时穿插进行学习指导,帮助初学者尽快掌握程序设计的学习方法。 课程主要针对无任何编程经历的初学者,利用主讲者多年来教授大一学生的教学经验,准确把握知识点掌握中的难点,在和视频配套的实践方案配合下,帮助初学者顺利掌握知识,获得学习中的自信。
Qt图形视图框架详解
介绍Qt中的Graphics View Framework,涉及View、Scene、Item的关系,如何自定义QGraphicsItem、处理Item之间的关联、如何布局及定义自己的布局Item、如何变幻Item、如何应用动画、如何处理拖放、如何给Item应用图形效果,提供拼图游戏、画板两个有用的实例。 通过本课程的学习,能够掌握Qt Graphics View Framework的基本应用,使用图形视图框架开发需要丰富的GUI效果的应用软件以及需要维护大量图元的、对图形界面层次要求较高的应用。
PDB符号文件查看工具 symview,pdbxtract
PDB符号文件查看工具, 包含2个工具symview 和pdbxtract symview可查看文件所有原始信息 pdbxtract 可方便查看结构体等信息, 可导出头文件或xml
FANUC PMC密码破解程序
FANUC 31I PMC密码破解程序 用于OID,30I,31I等FANUC的密码破解
Java初级从入门到精通
课程分为:J2SE 基础阶段,中级阶段,阶段; 课间会讲解一些小程序的开发:如:猜拳游戏,模拟银行柜员机程序,退休金结算程序等.
SIEMENS 840D SL调试手册.rar
里面含有840dsl的全部维修,调试,使用手册和资料,编程手册,报警诊断手册,PLC维修调试,系统报警代码,HMI高级手册.等.
(亲测正确版)ASP.NET-c#-捕捉网页快照-网站截图-网站缩略图
(亲测正确版)ASP.NET-c#-捕捉网页快照-网站截图-网站缩略图 ★★★★★★★★★★★★★★★★★★★★★★★★★★★ 建立网站缩略图源码 网页快照ASP.NET网站截图 网页快照ASP.NET c# 输入网址获取网站图片 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ 网上流传了很多网站缩略图的asp.net,但是都无法使用,本人亲测,该代码进行优化,速度快,效率高,占内存非常少。
手把手做安卓应用开发
安豆是一个想学Android应用开发的小白,于是它找到自己的邻居-程序员大牛-熊哥帮忙。熊哥手把手带着安豆搭建程序的开发环境,实现应用的功能,美化应用界面,让安豆终于开发出了自己的第一个安卓应用-计算器。 学习的过程中,两个伙伴有问有答,学习的过程生动有趣。你一定不会睡着。 让从没有接触过安卓开发并且什么都不会的小白,变成一个能够开发出简单的计算器应用的菜鸟。 让小白对安卓开发有个整体的认识,初步形成安卓开发的概念,掌握安卓开发最最基础的知识。
FANUC B-64113C_01 0i-C 0i Mate-C连接说明书(硬件)册
FANUC B-64113C_01 0i-C 0i Mate-C连接说明书(硬件)册
jquery自己写的文件目录
jquery自己写的文件目录,HttpServlet+js+jsp
B站王红元(codewhy)vue课件以及笔记
B站王红元(codewhy)vue课件以及笔记
Winfrom通用权限管理系统
Winfrom框架,动态生成菜单界面,附带数据库。纯手写,仅供学习参考,希望.net 程序员越来越好。 博客地址:https://blog.csdn.net/zzzzzzzert 有问题留言,互相学习交流
OpenGL-实现视频播放(FFMpeg)
课程采用FFMpeg作视频解码,采用OpenGL实现视频的渲染,从RGB数据的绘制,到直接渲染YUV数据,实现三路YUV数据单纹理的输入,提升系统性能,接着采用PBO方式优化内存到显存的传输,实现DMA传输,解放CPU,将解码和渲染分离到不同的线程中,极大的提升了系统的性能。后介绍视频特效的实现。 介绍如何采用OpenGL渲染视频帧数据,从固定管线到可编程管线一次实现,采用PBO实现DMA数据传输处理,以及简单的视频特效的实现。
常见密码的解密方法
一些常见的,密码的解密方法。
Groovy精简教程
注重实践,剔除繁琐的理论,通过案例讲解我们常用的知识点,各个知识点之间相对独立,不用担心某一个知识点学不会而耽搁学其他的知识点。轻轻松松入门Groovy。 每一个学员都能掌握Groovy的基本用法。
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-10-25 07:44
社区公告

让您成为最强悍的C#开发者