winform中文本框的一些案例

项目中经常看到在输入金额时,会加逗号,最近在复习正则表达式,就联系下,界面如下:

首先,对上面的文本框输入值进行控制,只允许用户输入数字0-9,小数点和退格键,注册文本框的KeyPress事件,代码如下:

 1 //输入值只能在数字0-9之间,允许输入小数点和退格键
 2             if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != 8 && e.KeyChar != 46)
 3             {
 4                 e.Handled = true;
 5             }
 6 
 7             //第一位不能是0
 8             if (txtMoney.SelectionStart==0&&e.KeyChar=='0')
 9             {
10                 e.Handled = true;
11             }
View Code

我想在光标离开文本框(其不再是窗体上的活动控件时,给用户输入值加逗号,注册Leave事件),代码如下:

1 #region 光标离开时加上逗号
2             string sMsg = txtMoney.Text.Trim();
3             if (!string.IsNullOrEmpty(sMsg))
4             {
5                 txtMoney.Text = Regex.Replace(sMsg, @"(?<=\d)(?=(\d{3})+(?!\d))", ",");
6             }
7             #endregion
View Code

代码中用到了正则表达式中的“环视”。

最后,在移入光标(文本框成为窗体的活动控件时,删除添加的逗号,注册Enter事件),代码如下:

1 #region 光标移入时删除逗号
2             string sMsg = txtMoney.Text.Trim();
3             if (!string.IsNullOrEmpty(sMsg))
4             {
5                 txtMoney.Text = sMsg.Replace(",", string.Empty);
6             }
7             #endregion
View Code

 主要是复习下对环视的应用。

posted on 2015-06-15 18:11  chens2865  阅读(470)  评论(0编辑  收藏  举报

导航