C#读取文本框忽略字符

时间:2013-04-20 21:40:34

标签: c# winforms keydown

大家好,我有一个按键事件如下

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它与我的十进制转换混淆任何建议

2 个答案:

答案 0 :(得分:1)

如果您想要阻止按键继续前进,请将e.SuppressKeyPress = true; e.Handled = true;添加到您的处理程序。

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

答案 1 :(得分:1)

前段时间我写了一篇关于将用户输入限制为TextBoxes的简短帖子,可以在这里找到(Restricting allowed characters in TextBox),但我意识到它没有处理的一件事是用户将包含这些字符的文本粘贴到下面的TextBox可能对您有用(Stopping someone from pasting into a TextBox)。这两个帖子都是用VB.NET编写的,但代码很简单,你不应该把代码转移到C#上。

希望这会有所帮助:)