C# 程序开发范例宝典读书笔记(七)——TextBox控件

1、只允许输入数字

控制文本框中只能输入数字主要是通过TextBox控件的KeyPress事件实现的。KeyPress事件用来在控件有焦点的情况下,按下键时发生,语法为:

 public event KeyPressEventHandler KeyPress

KeyPressEventHandler表示将要处理Control的KeyPress事件的方法。其语法为:

public delegate void KeyPressEventHandler(object sender,KeyPressEventArgs e)

参数说明: sender:事件源;

                    e :包含事件数据的KeyPressEventArgs 。

KeyPressEventArgs对象有Handled属性和KeyChar属性。

(1)Handled属性:

          获取或设置一个值,指示是否处理过KeyPress事件。如果处理过,则为True,否则为False。

(2)KeyChar属性:

        获取或设置与按下的键对应的字符。属性值为键盘对应的ASCII字符。

eg. 判断用户是否按下回车键,代码如下:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar ==13)
            {
                MessageBox.Show("您按下了回车键");                               
            }
        }

常用键盘对应的ASCII字符集:

常数          值    描述
vbKeyA     65     A 键
vbKeyB     66     B 键
vbKeyC     67     C 键
vbKeyD    68     D 键
vbKeyE     69     E 键
vbKeyF    70     F 键
vbKeyG     71     G 键
vbKeyH     72     H 键
vbKeyI     73     I 键
vbKeyJ     74     J 键
vbKeyK     75     K 键
vbKeyL     76     L 键
vbKeyM     77     M 键
vbKeyN     78     N 键
vbKeyO     79     O 键
vbKeyP     80     P 键
vbKeyQ     81     Q 键
vbKeyR     82     R 键
vbKeyS     83     S 键
vbKeyT     84    T 键
vbKeyU     85     U 键
vbKeyV     86    V 键
vbKeyW     87    W 键
vbKeyX     88     X 键
vbKeyY     89     Y 键
vbKeyZ     90     Z 键
小写字母为对应大写字母加上32

0——9的ASCII值对应分别为48——57

回车:13

换行:10;

空:0;

退格(Backspace):8;

 因此:只允许输入数字的程序代码为:(注意:在限制用户输入非0~9间数字的同时,不应限制用户输入“回车”和“退格”)

private void txtSum_KeyPress(object sender, KeyPressEventArgs e)
        {
            if ((e.KeyChar != 8 && !char.IsDigit(e.KeyChar))&&e.KeyChar!=13)
            {
                MessageBox.Show("只能输入数字","操作提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
                e.Handled = true;               
            }
        }

 

 2、限制输入长度及设置密码文本

 (1)限制输入长度:

              可通过设置TextBox控件的MaxLength属性即可限制最大长度。也可以在Form_Load函数中限制,如:

           private void Form1_Load(object sender, EventArgs e)
        {
            this.textBox1.MaxLength = 6;
            }

              如果输入字符超过最大长度需要输入提示语言,示例代码为:

       private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
           
                if (textBox1.Text.Length == 6)
                {
                    MessageBox.Show("用户名只能输入6个字符");
                }
        }

         限制的最小长度一般需要在信息提交(如点击确定键)时确定,如:

     private void button1_Click(object sender, EventArgs e)
        {
            if (textBox2.Text.Length < 6)
            {
                MessageBox.Show("用户密码不能低于6位");
                this.textBox2.Text = "";
                textBox2.Focus();
            }
        }

 (2)设置密码文本:

    当输入密码时需要显示为“*”或“#”时,只需要设置控件的PasswordChar为“*”或“#”即可。

   也可以在Form_load函数中设置:this.textBox2.PasswordChar = '*';

3、自动删除非法字符

主要通过KeyUp事件,KeyValue属性(对应键盘值的ASCII码),Select()方法(选取文本框的文本范围,有两个参数:Start和length),SelectAll()方法,SelectedText属性等实现。

如:实现只输入1~8,其他字符则自动删除的功能:

private void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyValue <= 48 || e.KeyValue >= 57)
            {

                textBox1.Select(0, textBox1.Text.Length - 1 ); //设置文本框中选中的文本
                textBox1.Text = textBox1.SelectedText;
                textBox1.SelectAll(); //选择全部文本
                textBox1.SelectionStart = textBox1.Text.Length;
                textBox1.Focus(); //获得焦点
                e.Handled = true;
            }
        }

也可以通过输入非法字符时忽略该输入实现:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsDigit(e.KeyChar))
            {              

                    e.Handled = true;
            }
        }

 

4、带记忆功能的文本框(为TextBox控件中添加列表选择框)

双击文本框显示以前输入过的项:

(1)、双击实现(可设置两次单击鼠标按钮之间的时间,以确定是否为双击事件)

private void textBox1_DoubleClick(object sender, EventArgs e)
        {
            if (listBox1.Items.Count != 0)
            {
                this.listBox1.Visible = true;
            }
        }

(2)、KeyPress事件

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                if (textBox1.Text.ToString() != "")
                {
                    this.listBox1.Items.Add(this.textBox1.Text);
                    this.textBox1.Text = "";
                }
            }
        }

(3)、当点击listBox中的项时,在textBox中显示该文本

 private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedItem.ToString() != "")
            {
                textBox1.Text = listBox1.SelectedItem.ToString();
                textBox1.SelectionStart = this.textBox1.Text.Length;
                textBox1.Focus();
                listBox1.Visible = false;
            }
        }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 窗体与界面设计....... 1 1.1 菜单应用实例...... 2 实例001 带历史信息的菜单...... 2 实例002 菜单动态合并...... 3 实例003 像开始菜单一样漂亮的菜单...... 4 实例004 任务栏托盘菜单...... 5 实例005 可以拉伸的菜单界面...... 5 实例006 菜级联菜单...... 7 1.2 工具栏设计...... 7 实例007 带背景的工具栏...... 7 实例008 浮动工具栏...... 8 实例009 带下拉菜单的工具栏...... 9 实例010 具有提示功能的工具栏...... 9 1.3 状态栏设计...... 10 实例011 在状态栏中显示检查框...... 10 实例012 带进度条的状态栏...... 11 实例013 状态栏中加入图标...... 12 1.4 导航菜单界面...... 12 实例014 OutLook界面...... 12 实例015 带导航菜单的主界面...... 14 实例016 图形化的导航界面...... 15 1.5 特色程序界面...... 17 实例017 类QQ的程序界面...... 17 实例018 类似Windows Xp的程序界面...... 18 实例019 以图形按钮显示的界面...... 20 实例020 以树形显示的程序界面...... 21 实例021 动态按钮的窗体界面...... 22 1.6 特殊形状的窗体...... 24 实例022 非矩形窗体...... 24 实例023 建立字体形状窗体...... 25 实例024 件随窗体自动调整...... 26 实例025 带分隔栏的窗体...... 27 实例026 随机更换主界面背景...... 27 1.7 多媒体光盘...... 28 实例027 自动启动的多媒体光盘程序...... 28 实例028 为触摸屏程序添加虚拟键盘...... 29 1.8 窗体效果...... 30 实例029 半透明渐显窗体...... 31 实例030 窗口颜色的渐变...... 32 1.9 窗体动画...... 33 实例031 窗体中的滚动字幕...... 33 实例032 动画显示窗体...... 34 实例033 制作闪烁的窗体...... 35 实例034 直接在窗体上绘图...... 37 实例035 动画形式的程序界面...... 38 1.10 标题栏窗体...... 39 实例036 使窗体标题栏文字右对齐...... 39 实例037 没有标题栏但可以改变大小的窗口...... 39 1.11 设置窗体位置...... 40 实例038 设置窗体在屏幕中的位置...... 40 实例039 始终在最上面的窗体...... 41 1.12 设置窗体大小...... 42 实例040 限制窗体大小...... 42 实例041 获取桌面大小...... 42 实例042 在窗口间移动按钮...... 43 实例043 如何实现Office助手...... 44 1.13 窗体制技术...... 45 实例044 在关闭窗口前加入确认对话框...... 45 实例045 使用任意组件拖动窗体...... 46 实例046 修改提示字体及颜色...... 47 1.14 其他技术...... 48 实例047 如何为MDI类型窗体设置背景图片...... 48 实例048 向提示框中添加图标...... 49 第2章 件应用....... 51 2.1 TextBox件应用...... 52 实例049 只允许输入数字的TextBox件...... 52 实例050 限制用户名称长度及设置密码文本...... 54 实例051 自动删除非法字符...... 55 实例052 为TextBox件添加列表选择框...... 57 2.2 Button件应用...... 58 实例053 在Button按钮中显示图标...... 58 2.3 ComboBox件应用...... 59 实例054 将数据表中的字段添加到ComboBox件...... 59 实例055 带查询功能的ComboBox件...... 61 2.4 RichTextBox件应用...... 63 实例056 利用RichTextBox件实现文档管理功能...... 63 等等 共有近500个实例,来帮助你强化C#的学习
第10章 SQL查询相关技术 425<br>10.1 SELECT子句 426<br>实例292 查询特定列数据 426<br>实例293 使用列别名 428<br>实例294 在列上加入计算 430<br>实例295 使用函数设置条件 431<br>10.2 查询常量 432<br>实例296 查询数字 433<br>实例297 查询字符串 434<br>实例298 查询日期数据 436<br>实例299 查询逻辑型数据 437<br>实例300 查询空数据 438<br>10.3 查询变量 440<br>实例301 利用变量查询字符串数据 440<br>实例302 利用变量查询数值型数据 441<br>实例303 利用变量查询日期型数据 442<br>10.4 模式查询 444<br>实例304 利用“_”通配符进行查询 444<br>实例305 利用“%”通配符进行查询 445<br>实例306 利用“[]”通配符进行查询 446<br>实例307 利用“[^]”通配符进行查询 448<br>实例308 复杂的模式查询 449<br>10.5 TOP和PERCENT限制查询结果 450<br>实例309 查询前10名数据 450<br>实例310 取出数据统计结果的前10名数据 451<br>实例311 查询销售量占前50%的图书信息 453<br>实例312 查询库存数量占后20%的图书信息 454<br>10.6 周期、日期查询 455<br>实例313 查询指定日期的数据 455<br>实例314 查询指定时间段的数据 457<br>实例315 按月查询数据 458<br>10.7 比较、逻辑、重复查询 460<br>实例316 查询数据大于指定条件的数据 460<br>实例317 NOT与谓词进行组合条件的查询 461<br>实例318 查询时不显示重复记录 463<br>实例319 列出数据中的重复记录和记录条数 465<br>10.8 在查询中使用OR和AND运算符 466<br>实例320 利用OR运算符进行查询 466<br>实例321 利用AND运算符进行查询 467<br>实例322 同时利用OR、AND运算符进行查询 469<br>10.9 排序、分组统计 471<br>实例323 数据分组统计(单列) 471<br>实例324 在分组查询中使用ALL关键字 473<br>实例325 在分组查询中使用CUBE运算符 475<br>实例326 在分组查询中使用ROLLUP 477<br>实例327 对数据进行降序查询 479<br>实例328 对数据进行多条件排序 480<br>实例329 对统计结果进行排序 482<br>实例330 按仓库分组统计图书库存(多列) 483<br>实例331 多表分组统计 484<br>实例332 使用COMPUTE 485<br>实例333 使用COMPUTE BY 487<br>10.10 聚合函数 488<br>实例334 利用聚合函数SUM对销售额进行汇总 488<br>实例335 利用聚合函数AVG求某班学生的平均年龄 490<br>实例336 利用聚合函数MIN求销售额、利润最少的商品 492<br>实例337 利用聚合函数MAX求月销售额完成最多的员工 493<br>实例338 利用聚合函数COUNT求日销售额大于某值的商品数 495<br>实例339 利用聚合函数First或Last求数据表中第一条或最后一条记录 496<br>10.11 多表查询(连接查询) 498<br>实例340 利用FROM子句进行多表查询 498<br>实例341 使用表别名 499<br>实例342 合并多个结果集 501<br>10.12 嵌套查询 503<br>实例343 简单嵌套查询 503<br>实例344 复杂嵌套查询 504<br>实例345 嵌套查询在查询统计中的应用 506<br>10.13 子查询 508<br>实例346 用子查询做派生的表 508<br>实例347 用子查询作表达式 510<br>实例348 在Update语句中应用子查询 511<br>10.14 联合语句Union 512<br>实例349 使用联合查询 512<br>实例350 多表联合查询 514<br>实例351 对联合查询后的结果进行排序 515<br>10.15 内联接查询 517<br>实例352 简单内联接查询 517<br>实例353 复杂内联接查询 518<br>实例354 使用内联接选择一个表与另一个表中行相关的所有行 519<br>10.16 外联接查询 520<br>实例355 left outer join查询 521<br>实例356 right outer join查询 522<br>实例357 使用外联接进行多表联合查询 523<br>10.17 利用IN进行查询 525<br>实例358 用IN查询表中的记录信息 525<br>实例359 使用IN引入子查询限定查询范围 526<br>10.18 交叉表查询 527<br>实例360 利用Trasform分析数据 527<br>实例361 利用Trasform动态分析数据 529<br>实例362 静态交叉表(SQLServer 2000) 531<br>实例363 动态交叉表(SQLServer 2000) 533<br>10.19 函数查询 535<br>实例364 在查询语句中使用格式化函数 536<br>实例365 在查询语句中使用字符串函数 537<br>实例366 在查询中使用日期函数 538<br>10.20 having语句应用 540<br>实例367 利用having语句过滤分组数据 540<br>实例368 having语句应用在多表查询中 541<br>10.21 视图的应用 543<br>实例369 在C#中应用视图 543<br>实例370 获取数据库中的全部用户视图 544<br>实例371 通过视图修改数据 545<br>10.22 存储过程的应用 546<br>实例372 C#应用存储过程 546<br>实例373 应用存储过程添加数据 547<br>实例374 应用存储过程修改数据 549<br>实例375 应用存储过程删除数据 550<br>实例376 C#应用查询存储过程 551<br>实例377 获取数据库中全部的存储过程 552<br>实例378 加密存储过程 553<br>10.23 触发器的应用 555<br>实例379 Insert触发器的应用 555<br>实例380 Update触发器在系统日志中的应用 556<br>实例381 触发器的嵌套使用 557<br>实例382 获取数据库中的触发器 559

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值