winforms 如何防止int类型文本框的空值

jbose2ul  于 2022-11-25  发布在  其他
关注(0)|答案(2)|浏览(218)

我有一个表单,希望用户在其中输入他们的名字、姓氏和年龄
但在此之前,我希望用户不能让文本框为空。我遇到的问题是获取年龄,我的数据必须是int类型,但我不知道年龄文本框为空,并向用户提供错误。

string firstName = tbxName.Text;
            string lastName = tbxFamily.Text;
            int age = Convert.ToInt32(tbxAge.Text);

            if (string.IsNullOrEmpty(tbxName.Text))
            {
                MessageBox.Show("لطفا نام کاربری خود را وارد کنید");
            }else if (string.IsNullOrEmpty(tbxFamily.Text))
            {
                MessageBox.Show("لطفا نام خانوادگی خود را وارد کنید");
            }else if (!string.IsNullOrEmpty(tbxAge.Text)) 
            { 
                MessageBox.Show("لطفا سن خود را بررسی کنید");
            }else
            {
                MessageBox.Show(" نام کاربری " + firstName + " نام خانوادگی " + lastName + " با سن " + age + " با موفقیت ثبت شد ");
            }
gj3fmq9x

gj3fmq9x1#

尝试以下代码

string firstName = textBox1.Text;
        string lastName = textBox2.Text;
        int age;

        if (string.IsNullOrEmpty(textBox1.Text))
        {
            MessageBox.Show("لطفا نام کاربری خود را وارد کنید");
        }
        else if (string.IsNullOrEmpty(textBox2.Text))
        {
            MessageBox.Show("لطفا نام خانوادگی خود را وارد کنید");
        }
        else if (string.IsNullOrEmpty(textBox3.Text))
        {
            MessageBox.Show("لطفا سن خود را بررسی کنید");

        }
        else if (!string.IsNullOrEmpty(textBox3.Text))
        {
            if (textBox3.Text.All(char.IsDigit))
            {
                age = Convert.ToInt32(textBox3.Text);
            }
            else
            {
                MessageBox.Show("لطفا سن خود را بررسی کنید");
            }
        }
        else
        {
            MessageBox.Show(" نام کاربری " + firstName + " نام خانوادگی " + lastName + " با سن " + age + " با موفقیت ثبت شد ");
        }
b4qexyjb

b4qexyjb2#

要警告标题问题(假设“int类型文本框”只是一个TextBox):

int num = string.IsNullOrWhiteSpace(textBox1.Text) ? -1 : Convert.ToInt32(textBox1);

这将使用ternary operator '?'
如果无法转换,Convert.ToInt32可能会抛出异常。请改用int.TryParse()

相关问题