2013-04-20 98 views
0

大家好,我有一个按键按下事件如下C#阅读文本框忽略字符

if (e.KeyCode == Keys.C && e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) 
{ 
    var amount = textBox1.Text; 
    var total = label3.Text; 
    decimal damount = Math.Round(Convert.ToDecimal(amount), 2); 
    decimal dtotal = Convert.ToDecimal(total); 
    var ntotal = dtotal - damount; 
    var ndue = Math.Round(Convert.ToDecimal(ntotal), 2); 
    var ntotal1 = Convert.ToString(ndue); 
    if (ndue <= 0) 
    { 
     panel4.Show(); 
     label4.Text = ntotal1; 
    } 
    else 
    { 
     label3.Text = ntotal1; 
    } 
    textBox1.Text = ""; 
    textBox1.Focus(); 
} 

此事件就像我想它,但这里是我的问题读取textbox1.text忽略字符比如当我该怎么办C或A,因为该keydown需要c将其与我的十进制转换弄乱任何建议

+0

可能重复[如何使一个文本框只接受数字和格式,数字之间用逗号?](http://stackoverflow.com/questions/15163564/how-to-make-一,文本框,接受只位数,和格式号码与 - 逗号) – 2013-04-20 21:45:43

+0

无不是重复即时试图找出如何在文本框中 – quatre432 2013-04-20 21:53:00

+0

忽略字符复制您的意见,并将其粘贴在文本框中。现在你有两个问题。 – 2013-04-21 03:39:05

回答

1

添加e.SuppressKeyPress = true; e.Handled = true;到您的处理时要防止按键从前进。

另外,您的if语句相当于if (e.KeyCode == Keys.Return),因为它永远不会等于CEnter

+0

我现在看到我的计划行不通感谢您关注输入 – quatre432 2013-04-20 21:59:44

1

前阵子我写了关于限制对用户输入文本框进,这是可以在这里(Restricting allowed characters in TextBox),但有一两件事,我才意识到,它没有处理短职位是用户粘贴包含这些字符转换成文本框的文本以下内容可能对您有用(Stopping someone from pasting into a TextBox)。这两篇文章都是用VB.NET编写的,但代码很简单,您不应该将代码移到C#上。

希望这有助于:)

+0

第一个链接的“限制文本框中允许的字符”是行不通的。在这里包含代码片段会很有帮助。 – Brett 2015-10-28 10:26:45