CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

VB.NET 文本框有没有类似掩码一类的功能

楼主wowttt()2005-06-03 17:28:44 在 .NET技术 / VB.NET 提问

想让用户只输入2005-05-06这样的格式,用户只需要输入数字   就可以了,怎么做 问题点数:30、回复次数:10Top

1 楼hamadou(闵峰--为了理想而奋斗)回复于 2005-06-03 17:35:19 得分 0

可以使用正则表达式来判断。输入的时候只允许输入数字和-,  
  Top

2 楼LionWangCity(完美生活)回复于 2005-06-03 17:47:53 得分 5

你是想自动格式化吧。  
  VB6里的Mask可以实现。  
  .Net下没有Mask这个控件。  
  只能依靠第三方软件。Top

3 楼wowttt()回复于 2005-06-03 18:35:30 得分 0

我是用代码来控制,只是想知道有没有更好的办法。                  
                  If   TextBox2.Text.Length   =   4   Then  
                          TextBox2.Text   =   TextBox2.Text   +   "-"  
                          SendKeys.Send("{END}")  
                  End   If  
                  If   TextBox2.Text.Length   =   7   Then  
                          TextBox2.Text   =   TextBox2.Text   +   "-"  
                          SendKeys.Send("{END}")  
                  End   IfTop

4 楼sagezk(SageZK)回复于 2005-06-03 18:52:14 得分 5

可喜的是VS.NET2005有.NET版MaskTextBox控件(我没记错的话,几个月前试用的),另外其它几个VB6下的ActiveX控件也有了.NET版本,另外如果你只想输入如2005-05-06这样表示日期格式的数据,可以使用DataTimePicker控件,不过[hamadou(闵峰)]的方法通用性较强,但要求也稍高了些,单单正则表达式就得用心研究研究(帮助文档地址如下:ms-help://MS.MSDNQTR.2003FEB.2052/cpgenref/html/cpconregularexpressionslanguageelements.htm),给你个建议,试试用变通的方法解决问题,最后一招才是依靠第三方控件!Top

5 楼hyj_828(水梦)回复于 2005-06-03 18:56:37 得分 0

代码实现嘛。Top

6 楼sagezk(SageZK)回复于 2005-06-03 19:05:40 得分 10

给你个思路,如下:  
  基本思想,创建个自定义控件,使其继承自TextBox控件,然后进行如下逻辑过程:  
  1.首先对字符进行筛选,只允许输入的字符为9个数字字符和-,参考TextBox控件的Overrides   Protected   Function   IsInputKey函数(ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfSystemWindowsFormsTextBoxClassIsInputKeyTopic.htm)  
  2.然后通过重写OnTextChanged函数,完成字符格式也就是输入字符(经过滤的合法字符)插入位置的逻辑。会用到SelectionStart和SelectionLength属性。  
  不过还是建议用正则表达式。通用性强吗!Top

7 楼rzpc(淡蓝色)回复于 2005-06-03 19:42:56 得分 5

用DateTimePicker控件完全可以实现楼主的需求。  
  把它的下拉功能禁止了即可。Top

8 楼jimmyzhu25(勿以分少而不为,勿以分多而为之)回复于 2005-06-03 20:30:38 得分 0

mark   学习Top

9 楼zhilong(子龙)回复于 2005-06-03 21:29:22 得分 0

bjTop

10 楼AntingZ(夕惕若)回复于 2005-06-03 22:51:10 得分 5

如果是输入日期的话,用DateTimePicker比较方便  
   
  如果还可能有其他格式,可以使用自定义控件,或者用Masked   Edit   ControlTop

相关问题

  • vb文本框的一个问题
  • vb 多行文本框问题
  • 我在excel中畫了一個文本框,我要從vb中傳一值到這個文本框中
  • vb中怎么打印文本框的内容?
  • VB中动态生成控件(文本框)
  • 怎么制作象VB中COMBO那样的下拉文本框!
  • 如何求datagrid的文本框的值asp.net(vb)?????
  • VB有没有好象文本框的替换功能?
  • .net中多行文本框的Maxlength属性为什么失效?
  • 在哪里设置文本框输入掩码?

关键词

  • .net
  • vb6
  • 控件
  • 字符
  • 正则表达式
  • vb
  • 数字
  • 输入
  • textbox2
  • 格式

得分解答快速导航

  • 帖主:wowttt
  • LionWangCity
  • sagezk
  • sagezk
  • rzpc
  • AntingZ

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo