我们熟悉的Textbox
创建只读文本框
- 方法一:
- 可用Readonly属性防止用户编辑文本框内容。将Readonly属性设置为True后,用户就可以滚动文本框中的文本并将其突出显示,但不能作任何更改。将Readonly属性设置为后,运行时可以在文本框中使用“复制”命令,但不能使用“剪切”和“粘帖”命令。Readonly属性只影响运行时的用户交互。这时仍可变更Text属性,从而在运行时通过程序改变文本框的内容。
- 方法二:
- 在textbox控件的KeyPress事件下,生成相应的事件监听方法,加入代码e.Handled=true.代码如下:
- e.Handled=True:从字面上理解,Handle是处理的意思,而加个ed,就表示处理过了。所以当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容自然也就不会发生变化了。
e.Handled的其他妙用:
- 首先添加好文本框控件TextBox后把属性IMEMode的值改成Disable,这样在该文本框中就不能使用中文输入法了。
- 文本框只能输入数字和退格键
- 在textbox控件的KeyPress事件下,生成相应的事件监听方法,加入代码e.Handled代码如下
- 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事件已经被处理过了,文本框的内容也就不会发生变化了。
- 文本框只能输入整数、小数、退格键
- 如果需要输入小数的话,就需要输入小数点".",而且小数点只能输入一次,此时将上面的函数改为下面的格式:
- PS:InStr函数:返回指定字符在字符串中的位置,当字符串中不含此字符时,返回一个负数。这时文本框可以用来输入正整数及小数。
- 文本框只能输入整数、小数、负数和退格键
- 如果需要输入负数的话,就需要输入负号"-",而且只能是文本框输入的第一个字符,此时又可以将上面的函数改为下面的格式:
- 给多个文本框做输入限制
- 在以上代码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
- 21楼ironxue2013-08-11 19:24
- 懂得真多,写得真好,向你学习i 。
- 20楼hejingyuan62013-08-07 19:27
- 很棒呀,收获了
- 19楼liu_yujie2011com2013-08-06 18:29
- 文本框好强大啊!通过这篇文章学习了很多!
- 18楼XUJIAOlf2013-08-03 19:32
- 学习了,细节还是很重要的。
- 17楼lfmilaoshi2013-08-01 10:41
- 这样的题目我非常喜欢,我一看,就知道你把以前学的知识用在这里了,这一点进步,非常了不起。
- 16楼xiaoduishenghuogo2013-07-31 22:02
- 够深刻!
- 15楼lvshihua2013-07-31 19:48
- 细致周到
- 14楼wangyongxia9212013-07-31 19:24
- 扩展啊,这么多,够深刻了。
- 13楼huo_yun2013-07-30 19:23
- 一个被我们经常忽略的小小文本框,被你发现了这么的多知识,看来在观察方面还需要加强。
- 12楼liutengteng1302013-07-29 16:41
- 很不错啊。继续加油
- Re: wang136675393252013-07-30 19:20
- 回复liutengteng130n呵呵,一起加油!
- 11楼dandanzmc2013-07-29 14:55
- 细节细节,不错不错,学习了啊。。。
- 10楼a1371510622013-07-27 10:42
- 学习一下,扩展知识量哈
- 9楼chenfanglincfl2013-07-20 19:25
- 回顾和总结,值得学习
- 8楼chenjinge72013-07-06 19:50
- 事件驱动的程序设计带来的优势
- 7楼lishehe2013-06-30 22:41
- 不错啊
- 6楼wangxuhebeibd2013-06-30 22:41
- 很具体很全面。学习了
- 5楼wlccomeon2013-06-30 10:24
- 看来对文本框的认识还只是皮毛~~~
- Re: wang136675393252013-06-30 22:40
- 回复wlccomeonn一次一次的加深呗
- 4楼leimengyuanlian2013-06-30 08:05
- 总结的很全面啊,对知识的进一步认识
- 3楼lvshihua2013-06-29 21:57
- 很全面学习了
- 2楼han_yankun20092013-06-24 11:39
- 丰富多彩呀
- Re: wang136675393252013-06-24 21:32
- 回复han_yankun2009n呵呵。。。。
- 1楼xvshu2013-06-21 08:30
- 新的解决方案啊!加油啊!
- 文本框只能输入整数、小数、负数和退格键
- 文本框只能输入整数、小数、退格键
- 解释:e.KeyChar:键盘输入键的对应的字符;IsDigit函数:判断是否为0到9的数字;Chr(8):退格键;当e.Handled为True时,程序认为该KeyPress事件已经被处理过了,文本框的内容也就不会发生变化了。
- 方法二:
- 可用Readonly属性防止用户编辑文本框内容。将Readonly属性设置为True后,用户就可以滚动文本框中的文本并将其突出显示,但不能作任何更改。将Readonly属性设置为后,运行时可以在文本框中使用“复制”命令,但不能使用“剪切”和“粘帖”命令。Readonly属性只影响运行时的用户交互。这时仍可变更Text属性,从而在运行时通过程序改变文本框的内容。