Windows应用程序,C#。
当用户输入:999.6789 显示:999.6789
当用户输入:999.678  显示:999.678
当用户输入:999.67   显示:999.67
当用户输入:999.6    显示:999.60
当用户输入:999      显示:999.00
当用户输入:0        显示:0
也就是说:最多允许输入4位小数,最少显示2位小数。
textBox已在绑定BindingSource数据源。要求不使用txt1.Text = _strValue.ToString("#########.00##");之类的语句。
当然最好只允许输入数字,不允许输入字母。我已用过MaskedTextBox控件都没实现。
请问要如何实现这种功能?

解决方案 »

  1.   

    keypress 事件里 
    if(e.KeyChar >='0' && e.KeyChar <='9')
    {
    e.Handled=false;
    }
    else
    {
    e.Handled=true;
    }
    这么写  可以只接收数字我是小菜鸟!   说的不好清见谅,   希望能够帮到你!
      

  2.   

    当用户输入:999.6789 显示:999.6789 
    当用户输入:999.678  显示:999.678 
    当用户输入:999.67  显示:999.67 
    当用户输入:999.6    显示:999.60 
    当用户输入:999      显示:999.00 
    当用户输入:0        显示:0 如果想要这种效果的话   那这个变量就不能是 double 或者 Decimal 的  因为他们不能控制最后的零补位要是用字符串的话   就更好做了   先把 . 后面的截取下来  length >4 的时候  只把 4个加回字符串
    如果 length <2 就把数后面 补上 0  然后 加回原来的我是小菜鸟!  说的不好清见谅,  希望能够帮到你!
      

  3.   

    楼主的最小显示2位不对啊,
    输入0应该是0.00试试重写NumericUpDown
      

  4.   

    输入:0,显示:0
    0是特殊的,不需要显示小数位。
    对于PB来说,这是再简单不过了。没想到VS2005,C#就这么难,而且这么多同僚都没有一个可以解决,不禁让人对VS太感失望。
    PB里可以设置“###########.00##;0”格式,但VS绑定数据源的TextBox控件却不知该如何实现这种功能(当然DataGridView可以实现),而即使MaskedTextBox控件我也暂时没办法实现。
      

  5.   

    在输入的KEYDOWN事件里自己判断处理如果小数点后面2位什么情况,3位怎样就可以了
      

  6.   

    int aa=Convert.ToDouble(TextBox1.Text);
    TextBox1.Text = Math.Round(aa, 2);