You're using the wrong control for the job. You should be using a NumericUpDown that has a range of 1-3. Now your users cannot enter invalid input, period.

The error checking code above will not get you there in it's own. It's always better to simply not allow invalid input from the get go rather than popping up an error after the fact.