我们熟悉的Textbox
来源:互联网 发布:北京java编程培训 编辑:程序博客网 时间:2024/04/29 10:11
创建只读文本框
- 方法一:
- 可用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 IfEnd 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 IfEnd 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 IfEnd 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
- 我们熟悉的106短信的水好深啊
- 我们变成了最熟悉的陌生人
- 那些我们熟悉的扑克游戏
- 今天来看看我们熟悉的“this”
- 我们熟悉的所谓面向过程的编程风格
- 从不同的角度来认知我们熟悉的医疗保险
- 茶余饭后来回顾我们熟悉的“Hello world program”
- 我们最终成为了最熟悉的陌生人
- 采用我们熟悉的VS2008环境开发QT应用
- 【我们已而成了彼此间最熟悉的陌生人】
- Chrome扩展 实现我们最熟悉的helloword
- 谈谈我们熟悉但未必了解的磁带库
- CFTC主席:加密货币不同于我们熟悉的其他商品
- MongoDB(二) 增删改——我们所熟悉的操作
- 【web前端培训之前后端的配合(上)】以我们熟悉的Datalist说明问题吧
- 熟悉的感觉
- 最最熟悉的陌生人
- 常用WebService一览表
- 包装类跟数组的使用及排序
- 期末复习2
- 不错的算法博客网址
- 不一样的C#(1)——class
- 我们熟悉的Textbox
- GUI
- linux 各种
- linux硬链接与软链接
- 摄像头测心率续(改进)
- OpenCV学习:Mat矩阵合并两张图像
- 杭电 2037(贪心)解题报告
- 第九次上机
- 基于FPGA的红外遥控解码与PC串口通信