0

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

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

4

2 回答 2

2

e.SuppressKeyPress = true; e.Handled = true;当您想阻止按键继续前进时,添加到您的处理程序。

顺便说一句,您的 if 语句等效于if (e.KeyCode == Keys.Return),因为它永远不会等于Cand Enter

于 2013-04-20T21:44:42.040 回答
1

不久前,我写了一篇关于限制用户输入到 TextBoxes 的短文,可在此处找到(限制 TextBox 中允许的字符),但我意识到它没有处理的一件事是用户将包含这些字符的文本粘贴到 TextBox 中以下内容可能对您有用(阻止某人粘贴到 TextBox中)。这两篇文章都是用 VB.NET 编写的,但代码很简单,将代码移至 C# 应该不会有任何问题。

希望这可以帮助 :)

于 2013-04-20T22:16:21.180 回答