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

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

if (e.KeyCode == Keys.Return)说一下,你的if语句等同于if (e.KeyCode == Keys.Return) ,因为它永远不会等于CEnter

前段时间我写了一篇关于将用户输入限制为TextBoxes的简短post,可以在这里找到( 限制TextBox中允许的字符 )但是我意识到它没有处理的一件事是用户将包含这些字符的文本粘贴到TextBox中以下内容可能对您有用( 阻止某人粘贴到TextBox中 )。 这两个post都是用VB.NET编写的,但代码很简单,你不应该把代码转移到C#上。

希望这可以帮助 :)