📜  c# textbox numbers only - C# (1)

📅  最后修改于: 2023-12-03 14:59:40.930000             🧑  作者: Mango

C#文本框只允许输入数字的实现

在某些情况下,我们需要限制用户只能在文本框中输入数字,而不能输入其他字符。这时候,我们可以使用C#来实现该功能。

下面是实现文本框只允许输入数字的C#代码片段,其中使用了正则表达式:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // 只允许输入数字
    e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}

在这个代码片段中,我们使用了textBox1_KeyPress事件,它在用户按下键盘上的键时触发。其中,e.KeyChar表示用户按下的键,IsDigit和IsControl方法用于判断是否输入了数字或控制键(如删除、退格等)。

如果用户输入了数字或控制键,则此事件处理程序不执行任何操作;如果用户输入了其他字符,则将e.Handled设置为true,表示该事件已被处理,此时文本框中也不会显示该字符。

还有一种方法是使用TextChanged事件来限制文本框中只允许输入数字,具体如下所示:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    // 只允许输入数字
    string text = textBox1.Text;
    string newText = string.Empty;
    foreach (char c in text)
    {
        if (char.IsDigit(c))
        {
            newText += c;
        }
    }
    textBox1.Text = newText;
    textBox1.Select(newText.Length, 0);
}

在这个代码片段中,我们使用了textBox1_TextChanged事件,它在文本框中的文本发生更改时触发。在此事件处理程序中,我们对文本框中的每个字符进行检查,如果是数字,则将其添加到新文本中。最后,我们将文本框的文本设置为新文本。此外,我们还使用Select方法将光标位置设置在文本末尾,以便用户继续输入数字。

以上是两种不同的实现文本框只允许输入数字的方法,使用时可以根据自己的需要选择其中之一。