You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何防止int类型文本框为空?表单验证问题求助

表单验证问题修正方案

你的代码存在两个核心问题:

  • 直接用Convert.ToInt32(tbxAge.Text)会在年龄框为空或输入非数字时抛出异常,导致程序崩溃
  • 年龄验证的逻辑判断写反了,当前条件会在年龄框不为空时提示错误,完全不符合需求

以下是修正后的完整代码:

string firstName = tbxName.Text.Trim();
string lastName = tbxFamily.Text.Trim();
int age;

// 验证名字非空
if (string.IsNullOrEmpty(firstName))
{
    MessageBox.Show("لطفا نام کاربری خود را وارد کنید");
    return;
}

// 验证姓氏非空
if (string.IsNullOrEmpty(lastName))
{
    MessageBox.Show("لطفا نام خانوادگی خود را وارد کنید");
    return;
}

// 验证年龄:先检查是否为空,再检查是否为有效整数
if (string.IsNullOrEmpty(tbxAge.Text.Trim()))
{
    MessageBox.Show("لطفا سن خود را وارد کنید");
}
else if (!int.TryParse(tbxAge.Text.Trim(), out age))
{
    MessageBox.Show("لطفا سن را به صورت عدد صحیح وارد کنید");
}
else
{
    MessageBox.Show($" نام کاربری {firstName} نام خانوادگی {lastName} با سن {age} با موفقیت ثبت شد ");
}

关键说明:

  • 使用Trim()去除输入前后的空格,避免用户输入空白字符被误判为有效内容
  • 用int.TryParse替代Convert.ToInt32,它会安全尝试转换输入,成功则返回true并将结果存入age变量,失败则返回false,不会抛出异常
  • 调整验证顺序:先确保名字和姓氏非空,再单独处理年龄的空值和格式错误,逻辑更清晰
  • 使用字符串插值$""替代字符串拼接,代码更简洁易读

内容的提问来源于stack exchange,提问作者Arash

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:20:31