【问题标题】:C# Reading Textbox ignoring charactersC#读取文本框忽略字符
【发布时间】:2013-04-20 21:40:34
【问题描述】:

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

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 它会干扰我的十进制转换任何建议

【问题讨论】:

标签: c# winforms keydown


【解决方案1】:

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

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

【讨论】:

  • 我现在确实看到我的计划行不通,谢谢您的意见
【解决方案2】:

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

希望这会有所帮助:)

【讨论】:

  • 第一个链接“限制文本框中允许的字符”不起作用。在此处包含代码 sn-p 会很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-29
  • 2012-01-18
  • 2020-08-05
  • 2020-10-01
  • 2018-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多