public class TextBoxDouble : TextBox
{
public TextBoxDouble()
{
KeyDown += TextBoxDouble_KeyDown;
TextChanged += TextBoxDouble_TextChanged;
} private void TextBoxDouble_TextChanged(object sender, TextChangedEventArgs e)
{
//屏蔽非法字符粘贴
var textBox = sender as TextBox;
if (textBox != null)
{
var change = new TextChange[e.Changes.Count];
e.Changes.CopyTo(change, ); int offset = change[].Offset;
if (change[].AddedLength > )
{
double num;
if (!Double.TryParse(textBox.Text, out num))
{
textBox.Text = textBox.Text.Remove(offset, change[].AddedLength);
textBox.Select(offset, );
}
}
}
} private void TextBoxDouble_KeyDown(object sender, KeyEventArgs e)
{
var txt = sender as TextBox;
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)
{
// 允许输入小键盘数字0-9或者点号
if (txt != null && (txt.Text.Contains(".") && e.Key == Key.Decimal))
{
// 不允许输入多个点号
e.Handled = true;
return;
}
e.Handled = false;
}
else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) &&
e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
{
// 允许输入数字0-9或者点号 并且不能按着Shift
if (txt != null && (txt.Text.Contains(".") && e.Key == Key.OemPeriod))
{
// 不允许输入多个点号
e.Handled = true;
return;
}
e.Handled = false;
}
else if (e.Key == Key.Enter)
{
// 允许输入回车
e.Handled = false;
}
else
{
e.Handled = true;
}
}
}

限制TextBox输入,只能输入Double类型数字的更多相关文章

  1. C#的winform中控制TextBox中只能输入数字

    C#的winform中控制TextBox中只能输入数字 private void textBox3_KeyPress(object sender, System.Windows.Forms.KeyPr ...

  2. C#-WinForm-Winform TextBox中只能输入数字的几种常用方法(C#)

    方法一: private void tBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == 0x20) e.KeyCh ...

  3. Winform TextBox中只能输入数字的几种常用方法(C#)

    方法一: private void tBox_KeyPress(object sender, KeyPressEventArgs e) { ; //禁止空格键 )) return; //处理负数 if ...

  4. 关于double类型数字相加位数发生变化的问题

     因为计算机内部存贮本身的缺陷,导致double类型的数字相加.得到的结果有非常多位,比方 774.23 750.0 2638.66 4162.889999999999 看到这个是不是非常晕 当然 ...

  5. winform中如何在TextBox中只能输入数字(可以带小数点)

    可以采用像web表单验证的方式,利用textbox的TextChanged事件,每当textbox内容变化时,调用正则表达式的方法验证,用一个label在text后面提示输入错误,具体代码如下: pr ...

  6. WinForm的TextBox限制只能输入数字并且屏蔽默认右键菜单

    基于Window消息实现 class TextBoxExt:TextBox { private const int WM_RBUTTONDOWN = 0x0204; private const int ...

  7. 限定textbox中只能输入数字的小方法

    在textbox中加入onkeyup="this.value=this.value.replace(/\D/g,' ')"即可实现这一功能 验证数字的正则表达式:^[0-9]*$或 ...

  8. JQuery 限制文本输入只能输入数字(可自定义正则表达式)

    var JVerify = { role: { number: /[0-9\/]/, decimal: /[0-9\.\/]/, code: /[0-9A-Z]/ }, Verify: functio ...

  9. java提取出一个字符串里面的Double类型数字

    String str="hh\n1\n22\n798.809\n0.89\n";         String regex="\\d+(?:\\.\\d+)?" ...

随机推荐

  1. TensorFlow深度学习笔记 文本与序列的深度模型

    Deep Models for Text and Sequence 转载请注明作者:梦里风林 Github工程地址:https://github.com/ahangchen/GDLnotes 欢迎st ...

  2. ReactNative

    基于ReactNative实现的博客园手机客户端   去年九月,facebook发布了react-native,将web端的javaScript和react技术扩展到了IOS和Android的原生应用 ...

  3. python bool值要注意的一些地方

    1.像(),[],{}这三个是可以通过bool(()),bool([]),bool({})转化为bool值的:且它们转化后的结果为False.但是这三个值它本身并不等于False.切记不可以与Fals ...

  4. TCP和HTTP

    TCP和HTTP 2013-11-01 11:29 6564人阅读 评论(2) 收藏 举报 分类: 计算机—杂七杂八(15) 1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议, ...

  5. VMware双网卡实现虚拟机连开发板和Internet

    前面已经介绍过关于VMware产生的虚拟交换机和虚拟网卡,当宿主机拥有两个网卡时,可以让虚拟系统同时实现上网和连接开发板的功能. 首先,在设置中虚拟出两块虚拟机网卡,一块连接VMnet0交换机一块连接 ...

  6. hdu 1166 敌兵布阵_线段树

    题意:略 思路:这题是单点更新,如果是减少的话,直接把数据变成负加上去就行了. #include <iostream> #include<cstdio> #include< ...

  7. nginx配置方法

    nginx配置的代码: user www www; worker_processes 8; error_log /data111/logs/nginx/nginx-error.log crit; pi ...

  8. java分页数据导出excel

    /** * 订单导出(用于统计利润) * @return */ public String orderExport() throws IOException{ if (queryOrderList_c ...

  9. C#中byte[] 与指针

    本文假定读者熟悉byte[].指针. C#是类型安全的,默认是不允许使用指针,但是针对C\C++或者其他语言的程序员(delphi)转为使用C#的的工作人员,不适用指针觉得很别扭.下面介绍一下基础的指 ...

  10. 常用Java Web 服务器

    Java Web应用程序需要部署在Java web服务器中运行,常用的Java Web服务器有Tomcat.GlassFish.WebLogic.JBoss.WebSphere.Jetty.JRun等 ...