user3666446
user3666446

Reputation: 1

c# Validating to make sure a number is entered

I want to make sure the user enters a number between 1 and 100. I need an error message to be displayed if they don't or enter a letter

    private void button1_Click(object sender, EventArgs e)
    {           
        guesses++;
        label4.Text = guesses.ToString();

        int guess = Convert.ToInt32(textBox1.Text);


        if (guess > number)
        {

            MessageBox.Show("The value is lower than" + guess);

        }

        if (guess < number)
        {
            MessageBox.Show("The Value is bigger than" + guess);

        }
        if (guess == number)
        {
            MessageBox.Show("Well done!! The number was" + guess);
        }


    }

Upvotes: 0

Views: 407

Answers (2)

BradleyDotNET
BradleyDotNET

Reputation: 61339

int guess;
bool numberEntered = int.TryParse(textBox1.Text, out guess);

if (!numberEntered)
    MessageBox.Show("Invalid characters detected!");
else if (guess > 100)
    MessageBox.Show("Number too big!");
else if (guess < 1)
    MessageBox.Show("Number too small!");

TryParse will return false if it couldn't make a number out of the string.

Upvotes: 1

Rapha&#235;l Althaus
Rapha&#235;l Althaus

Reputation: 60493

Use Int32.TryParse (which returns a boolean) instead of Convert.ToInt32 (which will throw an exception if the conversion fails.

int guess;

if (!Int32.TryParse(textBox1.Text, out guess)) {
 //error message;
}

Upvotes: 1

Related Questions