I have a form where I want the user to enter their first name, last name and age
But before anything, I want the user to not be able to leave the text boxes empty The problem I have is to get the age, my data must be of type int, but I don't know how the age text box is empty and gives an error to the user.
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 " با موفقیت ثبت شد ");
}
CodePudding user response:
Try below code
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 " با موفقیت ثبت شد ");
}
CodePudding user response:
To awnser the title qeustion (assuming an "int type text box" is just a TextBox):
int num = string.IsNullOrWhiteSpace(textBox1.Text) ? -1 : Convert.ToInt32(textBox1);
This uses the ternary operator '?'
Be carfull Convert.ToInt32 can throw a exception if it can't convert. Use int.TryParse() instead