今天拿到一个修改TextBox控件只输入文本的逻辑判断的任务,然后写了写,代码如下,可能存在不足,万分感谢!
创新互联主营渠县网站建设的网络公司,主营网站建设方案,重庆APP软件开发,渠县h5小程序设计搭建,渠县网站营销推广欢迎渠县等地区企业咨询
- ///
- /// 限制文本框只能相应数字、负号、删除、左右箭头、点的按键
- ///
- private void txbX_KeyDown(object sender, KeyEventArgs e)
- {
- string m_str = ((TextBox)sender).Text;
- if (((e.KeyCode>=Keys.D0&&e.KeyCode <= Keys.D9)||e.KeyCode == Keys.OemMinus||e.KeyCode == Keys.OemPeriod||e.KeyCode == Keys.Back||e.KeyCode == Keys.Delete||e.KeyCode == Keys.Left||e.KeyCode == Keys.Right)&&!e.Shift)
- {
- switch(e.KeyCode)
- {
- case Keys.OemPeriod:
- if (m_str.Contains('.'))
- {
- e.SuppressKeyPress = true;
- }
- else
- {
- if (m_str.Trim().Length == 0)
- {
- e.SuppressKeyPress = true;
- }
- }
- break;
- case Keys.OemMinus:
- if (m_str.Contains('-'))
- {
- e.SuppressKeyPress = true;
- }
- else
- {
- if (((TextBox)sender).SelectionStart != 0)
- {
- e.SuppressKeyPress = true;
- }
- }
- break;
- default:
- break;
- }
- }
- else
- {
- e.SuppressKeyPress = true;
- }
- }
有点小收获就是,知道了KeyEventArgs . SuppressKeyPress 属性和KeyEventArgs . Handled 属性的一点小区别。
KeyEventArgs . SuppressKeyPress 属性:
KeyEventArgs ..::. Handled 属性:true 表示跳过控件的默认处理;false 表示还将该事件传递给默认控件处理程序。