📜  仅窗口窗体文本框数字 - C# (1)

📅  最后修改于: 2023-12-03 15:36:12.535000             🧑  作者: Mango

仅窗口窗体文本框数字 - C#

简介

这是一个使用 C# 编程语言实现的仅允许输入数字的文本框控件,其它字符的输入都将被忽略。

实现思路

在针对文本输入进行处理的 KeyPress 事件中,判断输入字符是否为数字(包含负号和小数点),如果不是,将其忽略。

代码示例
// 创建一个继承自 TextBox 的新控件
public class NumericTextBox : TextBox
{
    // 重写 KeyPress 事件
    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        base.OnKeyPress(e); // 调用基类函数处理其它键盘事件

        // 如果键入字符不是数字、负号或小数点,将其忽略
        if (!char.IsDigit(e.KeyChar) && e.KeyChar != '-' && e.KeyChar != '.' && e.KeyChar != (char)Keys.Back)
        {
            e.Handled = true;
        }

        // 如果文本中已经存在一个小数点,再次输入小数点时将其忽略
        if (e.KeyChar == '.' && this.Text.Contains("."))
        {
            e.Handled = true;
        }

        // 如果文本中已经存在一个负号,再次输入负号时将其忽略
        if (e.KeyChar == '-' && this.Text.Contains("-"))
        {
            e.Handled = true;
        }
    }
}
使用方法
  1. 将以上代码复制粘贴到你的 C# 项目中。
  2. 使用 Visual Studio(或其它 IDE)在窗体上添加一个 TextBox 控件。
  3. 将 TextBox 控件的类型更改为 NumericTextBox。
  4. 运行程序,测试输入字符限制是否有效。
总结

这就是一个简单的仅允许数字输入的文本框控件实现。你可以将其作为自己项目的一部分,并对其进行修改和扩展,以满足更加丰富的需求。