Вам нужно написать событие нажатия клавиши в текстовом поле, например:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
Вы также можете использовать числовой элемент управления обновлением для предотвращения отрицательных значений.
ОБНОВЛЕНИЕ:
Ссылка: Саи Калян Акшинтхала
Мой код не будет обрабатывать случай копирования / вставки. Пользователь может вводить отрицательные значения путем копирования / вставки. Поэтому я думаю, что ответ Саи Калян Акшинтхала является правильным для этого случая, за исключением одного небольшого изменения длины> = 2.
private void textBox1_TextChanged(object sender, EventArgs e)
{
if(textBox1.Text.Length >= 2)
{
int acceptednumber = Convert.ToInt32(textBox1.Text);
if(acceptednumber < 0)
{
textBox1.Text = "";
MessageBox.Show("-ve values are not allowed");
}
else
{
textBox1.Text = textBox1.Text;
}
}
}