创建只读文本框

  • 方法一:
  • 可用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的更多相关文章

  1. WinStore控件之TextBox

    1 TextBox简单实例 内容摘要:包含文本的选中,弹出什么类型的键盘,回车隐藏键盘, <Grid Name="root" Background="Transpa ...

  2. 重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBlock, RichTextBlockOverflow

    原文:重新想象 Windows 8 Store Apps (1) - 控件之文本控件: TextBlock, TextBox, PasswordBox, RichEditBox, RichTextBl ...

  3. 【WPF】给TextBox添上Label

    原文:[WPF]给TextBox添上Label 引言     在客户端开发中,要说出现频率大的控件,必定有TextBox的身影.然而在TextBox的旁边通常得有个基友Label,形影不离.为此,我们 ...

  4. 高薪诚聘熟悉ABP框架的.NET高级开发工程师(2016年7月28日重发)

    招聘单位是ABP架构设计交流群(134710707)群主阳铭所在的公司-上海运图贸易有限公司 招聘岗位:.NET高级开发工程师工作地点:上海-普陀区 [公司情况]上海运图贸易有限公司,是由易迅网的创始 ...

  5. WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展

    一.前言.预览 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要是对文本 ...

  6. 学习Spring——两个你熟悉的不能再熟悉的场景使用

    最近公众号受邀获取了留言和赠送模板的权限,小开心(欢迎去公众号JackieZheng围观). 我们大致的了解了Spring这个框架对于依赖注入的使用和诠释可谓是淋漓尽致.因为有了Spring的这个IO ...

  7. 【MVVM DEV】DataColumn中的TextBox与ComboBox的并存

    一.前言       在WPF编程中,有时候我们使用DataGrid会需要在一个DataColumn中既有TextBox,也要有ComboBox或者TextBlock等其他数据显示样式. 这个时候我们 ...

  8. 04实现累加和计算功能并且实现textbox不允许输入数字以外的字符但不包括退格键同时不允许第一个数值为0

    private void button1_Click(object sender, EventArgs e) { double number1, number2; if (double.TryPars ...

  9. 保留password模式文本框textbox内的数据不丢失。

    在asp.net 2.0环境下,使用textbox,提交到服务器再传回,如果textbox是password模式的,那么textbox内的密码(星号),就没有了! protected override ...

随机推荐

  1. Java 实现享元(Flyweight)模式

    /** * 字母 * @author stone * */ public class Letter { private String name; public Letter(String name) ...

  2. AFNetworking2.5使用2

    链接地址:http://blog.csdn.net/abc4715760/article/details/46521111 官网下载2.5版本:http://afnetworking.com/ 此文章 ...

  3. BZOJ 1047: [HAOI2007]理想的正方形( 单调队列 )

    单调队列..先对每一行扫一次维护以每个点(x, y)为结尾的长度为n的最大最小值.然后再对每一列扫一次, 在之前的基础上维护(x, y)为结尾的长度为n的最大最小值. 时间复杂度O(ab) (话说还是 ...

  4. sql server 深入使用 总结 part1

    1   OUTPUT  应用场景 : 1.1.对于INSERT,可以引用inserted表以查询新行的属性.         insert into [表名] (a) OUTPUT Inserted. ...

  5. itextsharp生成pdf后的直接打印问题

    原文 itextsharp生成pdf后的直接打印问题 小弟这两天用itextsharp生成pdf文档,生成的pdf可以直接保存在指定路径的文件夹下,可是user不想保存,想要点一下button,就可以 ...

  6. Docker学习笔记(4) — 开启Docker远程访问

    默认情况下,Docker守护进程会生成一个socket(/var/run/docker.sock)文件来进程本地进程通信,而不会监听任何端口,因此只能在本地使用docker客户端或者使用Docker ...

  7. 《Python简明教程》总结

    Python经典教程<Python简明教程> 目录: 为什么Python 安装Python 体验Python Python数据类型 运算符与表达式 控制流 函数 模块 数据结构 解决问题 ...

  8. ACM一些题目

    Low Power 先二分答案,可以通过调整证明同一台机器选的两个芯片必然是提供能量数值相邻的两个.所以再贪心一下就可以了. 时间复杂度\(O(n \log n)\). Factors 假设\(k\) ...

  9. POJ 1700 cross river (数学模拟)

                                                                                                       ...

  10. JQuery 事件及案例

    JQuery事件与JavaScript事件相似,只是把其中的on去掉 1.click,dblclick事件 案例1:点击缩略图换背景 <html xmlns="http://www.w ...