在 C# WinForm 中,可以使用 KeyPress 事件来限制文本框的输入内容。以下代码实现仅允许输入数字和小数点,并且确保输入的字符串能够被转换成浮点数:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    // 判断输入的字符是否为数字或小数点或退格键
    if (!char.IsDigit(e.KeyChar) && e.KeyChar != '.' && e.KeyChar != (char)Keys.Back)
    {
        e.Handled = true; // 不允许输入
        return;
    }

    // 判断输入的字符是否为小数点
    if (e.KeyChar == '.')
    {
        // 如果已经输入过小数点或者还没有输入数字,则不允许输入小数点
        if (textBox1.Text.Contains('.') || textBox1.Text == "")
        {
            e.Handled = true; // 不允许输入
            return;
        }
    }

    // 判断输入的字符是否能转换成浮点类型
    float num;
    if (e.KeyChar != (char)Keys.Back && !float.TryParse(textBox1.Text + e.KeyChar, out num))
    {
        e.Handled = true; // 不允许输入
    }
}

KeyPress 事件中,首先判断输入的字符是否为数字或小数点或退格键,如果不是则不允许输入。然后判断输入的字符是否为小数点,如果已经输入过小数点或者还没有输入数字,则不允许输入小数点。最后判断输入的字符是否能转换成浮点类型,如果不能则不允许输入。


原文地址: https://www.cveoy.top/t/topic/jFGE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录