1  一些常用属性
this.textBox5.PasswordChar = '@';  //密码的样式
            this.textBox5.UseSystemPasswordChar = true; //如果这个属性为true,则密码就和系统默认的密码样式相同,而PasswordChar属性不起作用.
            this.textBox5.Multiline = true;   //多行显示
            this.textBox5.WordWrap = true;  //自动换行
            this.textBox5.ScrollBars = ScrollBars.Vertical; //显示垂直滚动条。ScrollBars的枚举值之一。
            this.textBox5.MaxLength = 100;//在文本框中输入的最大字符数。

2  实现自动完成功能,提高用户体验

想实现自动完成,就必须明白三个属性:

AutoCompleteSource属性: 设置自动完成的来源。此属性的值为AutoCompleteSource枚举值之一

AutoCompleteMode属性:设置自动完成的显示模式。此属性的值为AutoCompleteMode枚举值之一

AutoCompleteCustomSource属性:自定义完成来源。当AutoCompleteSource属性值为CustomSource时,此

属性才起做用。属性值为AutoCompleteStringCollection集合对象,可以通过AutoCompleteCustomSource属性

这个集合。

可以通过直接属性值来实现自动完成,也可以用代码实现,用代码如下:

AutoCompleteStringCollection myCutomSource = new AutoCompleteStringCollection();
            myCutomSource.AddRange(new string[]{"成都市东门","成都市北门","成都市西门","成都市南门"});
            this.textBox5.AutoCompleteSource = AutoCompleteSource.CustomSource;
            this.textBox5.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
            this.textBox5.AutoCompleteCustomSource = myCutomSource;

3  TextBox控件中的字符在输入同时立即转换为大写或小写

方法一:通过CharacterCasing属性来实现。此属性默认的值为Normal,意思是字符的大小写不会改变。还有2个属性值:Upper和Lower。

方法二:通过TextBox的KeyPress事件实现

private void textBox3_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsLower(e.KeyChar))
            {
                textBox3.SelectedText = char.ToUpper(e.KeyChar).ToString();
                e.Handled = true;
            }
        }

4  验证用户输入,增加用户体验

基本的思路是:首先,使用控件的Validating事件来验证用户的输入。其次,当输入值不符合要求时,用ErrorProvider控件通知用户或者 用MessageBox以弹出对话框的形式通知用户。显然用RrrorProvider控件通知用户更具用户体验性。

注意:只有当控件的 CauseValidation属性被设置为True(此为默认值)时,才会引发Validating事件。同时必须知道Validating事件会在控 件失去焦点之前引发。Validating事件会提供 CancelEventArgs参数,可以让你通过设置其Cancel属性来告知该控件中的数据是 否有效,如果你把Cancel属性设置为True(表示控件中的数据无效),则焦点会保持在数据无效的控件上;如果你把Cancel属性保持默认值 False(表示控件中的数据有效),则接下来会引发Validated事件,而且焦点也会转移到新的控件上去。

注意:焦点所前往的控件的CauseValidation属性的设置值也会决定焦点原先所在控件的Validating事件是否要被引发。如果焦点所前往的控件的CauseValidation属性的值为False,则焦点原先所在控件的Validating事件

"#ff0000">不会被引发,如果焦点所前往的控件的CauseValidation属性的值为True,则焦点原先所在控件的Validating事件会被引发。这样的好处是增加了灵活性而且也不会遗漏任何验证操作。此外只要窗体中任何一个控件的输入值无法通过Validating事件的验证条件,则窗体将无法关闭。

一个例子:

//必须要从工具箱组件中把ErrorProvider控件拖到窗体上,不管眼验证多少控件,只需要一个ErrorProvider控件就OK了
private void txtUserName_Validating(object sender, CancelEventArgs e)
        {
            if (this.txtUserName.Text == string.Empty)
            {
                errorProvider1.SetError(txtUserName, "姓名不能为空!");
                e.Cancel = true;
            }
            else
            {
                errorProvider1.SetError(txtUserName, "");
            }

另一个例子:

private void txtPhone_Validating(object sender, CancelEventArgs e)
        {
            Regex re = new Regex(@"^(d{3})d{4}d{4}$");
            if (!re.IsMatch(txtPhone.Text))
            {
                errorProvider1.SetError(txtPhone, "电话号码必须符合(xxx) xxxx xxx 的格式。");
                e.Cancel = true;//当输入的值不符合要求时候,将不允许移出该控件
            }
            else
            {
                errorProvider1.SetError(txtPhone, "");
            }
        }

最 后注意一点:ErrorProvider这种控件很像是一种“扩展性提供者”。为什么这样说呢?当你把一个ErrorProvider控件拖到窗体上时, 你会发现,原来窗体上的控件多出了三个属性:errorProvider1 上的 Error、errorProvider1 上的 IconAlignment、errorProvider1 上的 IconPadding。像ErrorProvider这样的控件还有ToolTip控件等,一旦你将一个ToolTip控件加入窗体后,窗体上的所有控 件就会多出一个"toolTip1 上的ToolTip",以便让你设定某个控件的工具提示信息。

转载于:https://www.cnblogs.com/ShengHai/archive/2012/05/29/TextBox%e5%9f%ba%e6%9c%ac%e6%8a%80%e5%b7%a7.html

WinForm中TextBox的几个基本技巧相关推荐

  1. Winform 中 TextBox 换行问题解析(转)

    winform 中 TextBox 的 Multiline属性设置为 true ,敲入几个字符和几个回车,然后保存到数据库,再从数据库中读取出来赋值给TextBox,换行符丢失.以前遇到这问题,没太在 ...

  2. winform中textbox设置只能输入数字

    winform中textbox设置只能输入数字 textbox 的keypress事件,通过keychar判断键盘的按键是否为数字或小数点.删除.退格 //判断按键是不是要输入的类型.if (((in ...

  3. WinForm中TextBox 中判断扫描枪输入与键盘输入

    提出问题:在收货系统中,常常要用到扫描枪扫描条码输入到TextBox,当条码无法扫描时,需要手工输入.如果是扫描枪输入时,我们将自动去判读条码,而手工输入时,最终需要加按回车键确认后判读条码.这时候我 ...

  4. winform中textbox属性Multiline=true时全选

    1.文本框右键属性 => 添加KeyDown事件. 2.添加如下代码: private void txt_result_KeyDown(object sender, KeyEventArgs e ...

  5. C# WINFORM 中 多行TEXTBOX的换行

    原文地址为: C# WINFORM 中 多行TEXTBOX的换行 要让一个Windows Form的 TextBox显示多行文本就得把它的Multiline属性设置为true. 这个大家都知道,可是当 ...

  6. C#在WinForm中实现清空指定类型控件的内容

    实现在Winform中递归控件来清空指定类型控件的内容(因为在Winform中,各个控件是有层次关系的,不能简单地依靠遍历this.controls) private void ClearConten ...

  7. WinForm -- 为TextBox文本框添加鼠标右键菜单

    WinForm -- 为TextBox文本框添加鼠标右键菜单 1. 新建一个WinForm项目,放置一个TextBox控件 2. 从工具箱拖进来一个ContextMenuStrip 3. 将TextB ...

  8. 在winform中使用三层架构学习总结

    Winform 三层架构小例子 http://www.cnblogs.com/jacky73/archive/2009/09/01/1558083.html 在web开发中常常用到工厂模式三层架构,现 ...

  9. Winform中选取指定文件夹并获取其下所有文件

    场景 Winform中选取指定文件夹,并获取该文件夹下所有文件名,不包含子文件夹.考虑子文件夹可以使用递归实现. 注: 博客: BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客 ...

  10. Winform中使用mysqldump实现选择部分表定期备份mysql数据库

    场景 Winform中实现与Mysql8建立连接并获取所有的表,然后勾选指定的表,定时进行数据库备份导出为sql文件.并且可以设定覆盖备份的次数,比如设置为7,则备份到第8次时就会将第一次备份的sql ...

最新文章

  1. 主瓣,旁瓣,栅瓣概念解析
  2. Windows server 2003 R2 文件服務管理測試報告
  3. [转]对C#泛型中的new()约束的一点思考
  4. Java Thread pool的学习笔记
  5. win10+tomcat+php+配置环境变量配置,Win10系统Tomcat环境变量配置方法
  6. arcgis adf数据_使用ADF列表视图的主从数据
  7. linux看硬件配置命令,Linux查看硬件配置命令
  8. zabbix agent安装_OpenSUSE RPM安装 zabbix-agent
  9. MySQL解压缩版配置安装详解【图解】
  10. pd 生成mysql数据库sql时加上备注
  11. 爬虫实战 -- QQ空间自动点赞
  12. 《我家侯爷不宠我》盛大开机,丹青映画国漫IP再次“破壁”
  13. 锐捷S12010交换机配置端口镜像
  14. excel冻结窗口怎么设置_excel打印区域怎么设置?excel表格打印区域怎么设置?
  15. Linux服务器上传 .class用base64加密,转换文件到服务器的技巧
  16. 数据结构(一)STL二分法查找实现及上下界
  17. 在java中使用关键字导入包_在Java中,若要使用一个包中的类时,首先要求对该包进行导入,其关键字是( )。...
  18. Android插件化——加载其他APP页面
  19. 国家标准《信息技术 人工智能 知识图谱技术框架》第五次编辑会成功召开
  20. DNF台服每天0点刷新角色创建限制数据库代码

热门文章

  1. 外星人台式电脑_2020年双11:高端电竞游戏笔记本电脑本推荐:联想、惠普、雷神、ROG、外星人等品牌游戏本挑选指南...
  2. 浙江大学的”程序设计入门-C语言课程“截图
  3. ArrayList源码解析
  4. 程序员究竟还需要读书么?
  5. ECSHOP去掉收货人信息中邮件必填选项
  6. Web.config中用customErrors可以自定义默认的出错页面
  7. 做.NET开发解决Extjs4智能感知
  8. HDU4578 Transformation(多标记线段树)题解
  9. System.Web.Helpers.Json 与 Newtonsoft.Json 的性能对比
  10. c#参数修饰符-ref