asp.net中WinForm中TextBox的几个基本技巧

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, "");
            }
        }

时间: 2024-10-01 12:03:32

asp.net中WinForm中TextBox的几个基本技巧的相关文章

asp.net from winform中textbox下拉提示框

asp教程.net from winform中textbox下拉提示框 private void form1_load(object sender, eventargs e) {     autocompletestringcollection strings = new autocompletestringcollection();     strings.add("a1");//不区分大小写     strings.add("a2");     strings.

asp.net 的winform中窗体之间跳转如何传值

asp教程.net 的winform中窗体之间跳转如何传值 使用attribute  public partial class form1 : form    {    private void button1_click(object sender, eventargs e)    {    form2 frm2 = new form2();    frm2.show(this);    }    }    public partial class form2 : form    {    p

c#中WinForm的TextBox循环自动滚动示例

这个问题来自论坛提问,演示代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace WindowsApplication2

winform 中 把datagrid 中的记录存到DataTable中

问题描述 winform 中 把datagrid 中的记录存到DataTable中 winform 中 把datagrid 中的记录存到DataTable中 怎么操作 大神们 帮帮忙撒.... 解决方案 手写的,自己参考下 DataTable dt = new DataTable(); dt.Columns.Add("第一列"); dt.Columns.Add("第二列"); foreach (var item in datagrid.Rows) { DataRow

ASP.NET 2.0中TextBox服务器控件的ReadOnly和Disabled属性

ado|asp.net|服务器|控件 在以前的ASP.NET 1.x版本中,设置为ReadOnly的TextBox控件在客户端更改了值后,在服务器端仍然可以得到修改后的值,但在ASP.NET 2.0中,这种做法已经限制.这是为了提高应用程序安全性所考虑的.下面就是TextBox控件获得数据的内部方法,由此可以看出ReadOnly的限制: protected virtual bool LoadPostData(string postDataKey, NameValueCollection post

ASP.Net Web aspx中TextBox的滚动条问题!

问题描述 ASP.NetWebaspx中设置TextBoxStyle="overflow-y:visible"就是使生成的TextBox不显示滚动条,且随着TextBox.Text的多少而自动改变TextBox的高度.可是我遇见的问题是:在IE,傲游浏览器中生成的TextBox没有滚动条,可是使用火狐浏览器就会出现滚动条,很难看.请问各位老大是什么原因? 解决方案 解决方案二:在他属性里给他设置..

ASP.NET如何调用winform中的方法

问题描述 新手,遇见个问题,不知道如何解决.一个BS架构(ASP.NET),一个CS架构.CS架构服务器通过socket与客户端(仪器)通讯.如何通过网页去调用服务器中与仪器通讯.现实远程控制是通过webservice么?还是什么技术,希望做过这方面技术的大大们给点思路,或者相关的资料. 解决方案 解决方案二:这跟什么b/s.c/s没有直接关系.b/s是指浏览器端跟服务器的关系,才叫b/s.而你的设计问题,是asp.net服务器端程序本身的问题,这就要要从asp.net本身的特性去考虑.假设某个

.Net中导出数据到Excel(asp.net和winform程序中)_实用技巧

一.asp.net中导出Excel的方法: 在asp.net中导出Excel有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上:一种是将文件直接将文件输出流写给浏览器.在Response输出时,t分隔的数据,导出Excel时,等价于分列,n等价于换行. 1.将整个html全部输出Excel 此法将html中所有的内容,如按钮,表格,图片等全部输出到Excel中. 复制代码 代码如下: Response.Clear(); Response.Buffer= tru

在WINFORM中,有webBrowser控件和HtmlDocument对象,那么ASP.NET里呢?

问题描述 小弟在WINFORM中,使用webBrowser请求某一网页,然后返回HTML代码,再用HtmlDocument对象提取出HTML代码中的需要的东西,现在要使用ASP.NET实现,请问有类似于这两种控件吗?1:webBrowser控件,不一定要可以看到页面,只要输入一个网址,既能请求并且获取到该网页中的HTML代码.2:HtmlDocument对象,可以用这个对象可以简单找到HTML代码中的元素上面两个东西,请问在ASP.NET里有没有什么可以实现的方法,谢谢大家! 解决方案 解决方案