我们熟悉的Textbox
创建只读文本框
- 方法一:
- 可用Readonly属性防止用户编辑文本框内容。将Readonly属性设置为True后,用户就可以滚动文本框中的文本并将其突出显示,但不能作任何更改。将Readonly属性设置为后,运行时可以在文本框中使用“复制”命令,但不能使用“剪切”和“粘帖”命令。Readonly属性只影响运行时的用户交互。这时仍可变更Text属性,从而在运行时通过程序改变文本框的内容。
- 方法二:
- 在textbox控件的KeyPress事件下,生成相应的事件监听方法,加入代码e.Handled=true.代码如下:
Private Sub textbox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtReturnCash.KeyPress
e.Handled = True
MsgBox("此处无需输入数据", vbOKOnly + vbExclamation, "温馨提示")
End Sub
- e.Handled=True:从字面上理解,Handle是处理的意思,而加个ed,就表示处理过了。所以当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容自然也就不会发生变化了。
e.Handled的其他妙用:
- 首先添加好文本框控件TextBox后把属性IMEMode的值改成Disable,这样在该文本框中就不能使用中文输入法了。
- 文本框只能输入数字和退格键
- 在textbox控件的KeyPress事件下,生成相应的事件监听方法,加入代码e.Handled代码如下
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
If Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8) Then
e.Handled = False
Else
e.Handled = True '事件己处理
End If
End Sub
- ps: Char.IsDigit(e.KeyChar):是检测按下的键的字符是否是10进制数,也可以用Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57代替。如果考虑小键盘,还需要加入or asc(e.kychar) >= 96 And asc(e.kychar) <= 105 ,因为小键盘上的 0~9 对应的ASCII码是96~105
- 解释:e.KeyChar:键盘输入键的对应的字符;IsDigit函数:判断是否为0到9的数字;Chr(8):退格键;当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化了。
- 文本框只能输入整数、小数、退格键
- 如果需要输入小数的话,就需要输入小数点".",而且小数点只能输入一次,此时将上面的函数改为下面的格式:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
If Char.IsDigit(e.KeyChar) or e.KeyChar = Chr(8) or e.KeyChar = "." Then
If e.KeyChar = "." And InStr(TextBox1.Text, ".") > 0 Then
e.Handled = True
Else
e.Handled = False
End If
Else
e.Handled = True
End If
End Sub
- PS:InStr函数:返回指定字符在字符串中的位置,当字符串中不含此字符时,返回一个负数。这时文本框可以用来输入正整数及小数。
- 文本框只能输入整数、小数、负数和退格键
- 如果需要输入负数的话,就需要输入负号"-",而且只能是文本框输入的第一个字符,此时又可以将上面的函数改为下面的格式:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress
If Char.IsDigit(e.KeyChar) Or e.KeyChar = "." Or e.KeyChar = Chr(8) Then
If e.KeyChar = "." And InStr(TextBox1.Text, ".") > 0 Then
e.Handled = True
Else
e.Handled = False
End If
ElseIf e.KeyChar = "-" And TextBox1.Text = "" Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
- 给多个文本框做输入限制
- 在以上代码Handles后面加上多个文本框的KeyPress事件,各事件之间用逗号隔开,便可以实现给多个文本框做输入限制了。代码如下:
Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Textbox1.KeyPress,Textbox2.KeyPress,Textbox2.KeyPress,Textbox3.KeyPress
我们熟悉的Textbox的更多相关文章
- WinStore控件之TextBox
1 TextBox简单实例 内容摘要:包含文本的选中,弹出什么类型的键盘,回车隐藏键盘, <Grid Name="root" Background="Transpa ...
- 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow
原文:重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBl ...
- 【WPF】给TextBox添上Label
原文:[WPF]给TextBox添上Label 引言 在客户端开发中,要说出现频率大的控件,必定有TextBox的身影.然而在TextBox的旁边通常得有个基友Label,形影不离.为此,我们 ...
- 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)
招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司-上海运图贸易有限公司 招聘岗位:.NET高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...
- WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展
一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要是对文本 ...
- 学习Spring——两个你熟悉的不能再熟悉的场景使用
最近公众号受邀获取了留言和赠送模板的权限,小开心(欢迎去公众号JackieZheng围观). 我们大致的了解了Spring这个框架对于依赖注入的使用和诠释可谓是淋漓尽致.因为有了Spring的这个IO ...
- 【MVVM DEV】DataColumn中的TextBox与ComboBox的并存
一.前言 在WPF编程中,有时候我们使用DataGrid会需要在一个DataColumn中既有TextBox,也要有ComboBox或者TextBlock等其他数据显示样式. 这个时候我们 ...
- 04实现累加和计算功能并且实现textbox不允许输入数字以外的字符但不包括退格键同时不允许第一个数值为0
private void button1_Click(object sender, EventArgs e) { double number1, number2; if (double.TryPars ...
- 保留password模式文本框textbox内的数据不丢失。
在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号),就没有了! protected override ...
随机推荐
- Ajax的三种实现及JSON解析
本文为学习笔记,属新手文章,欢迎指教!! 本文主要是比较三种实现Ajax的方式,为以后的学习开个头. 准备: 1. prototype.js 2. jquery1.3.2.min.js 3. j ...
- html5新特性:利用history的pushState等方法来解决使用ajax导致页面后退和前进的问题
一.背景 使用ajax,可以实现不需要刷新整个页面就可以进行局部页面的更新.这样可以开发交互性很强的富客户端程序,减少网络传输的内容.但长期以来存在一个问题,就是无法利用浏览器本身提供的前进和后退按钮 ...
- 开源OCR光学字符识别
纸张在 许多地方已日益失宠,无纸化办公谈论40多年,办公环境正限制纸山的生成.而过去几年,无纸化办公的概念发生了显着的转变.在计算机软件的帮助 下,包含大量重要管理数据和资讯的文档可以更方便的以电子形 ...
- 7款Linux下阅读PDF的阅读器。
5款Linux下阅读PDF的阅读器.1. Mupdf:link 2. Adobe Reader:link 3. Foxit Reader:link 4.Evince:link 5. Okular:li ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之子弹和地图碰撞
上篇文章实现了坦克与地图碰撞的检测, 这篇我们继续完成子弹和地图的碰撞检测. 1.先设计一个子弹类Bullet,如下所示: class Bullet : public CCSprite { publi ...
- STL 源代码剖析 算法 stl_algo.h -- equal_range
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie equal_range(应用于有序区间) ------------------------- ...
- GCC 编译使用动态链接库和静态链接库的方法
1 库的分类 依据链接时期的不同,库又有静态库和动态库之分. 静态库是在链接阶段被链接的.所以生成的可执行文件就不受库的影响了.即使库被删除了,程序依旧能够成功执行. 有别于静态库,动态库的链接是在程 ...
- 在Service中使用广播接受者
1.清单文件 <service android:name="com.example.callmethod.MyService"></service> 2.开 ...
- android内存的一点优化
android手机给应用分配的内存通常是8兆左右,如果处理内存处理不当很容易造成OutOfMemoryError,我们的产品出现最多的错误也是OutOfMemoryError的异常, 在解决这个异常时 ...
- perl 访问类方法的几种方式
[root@wx03 test]# cat Horse.pm package Horse; use base qw(Critter); sub new { my $invocant = shift; ...