Как сэмулировать у TextBox свойство Numeric (C#)

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
Аватара пользователя
RealPalmman
Доктор (4 lvl)
Сообщения: 206
Зарегистрирован: Вт сен 02, 2003 17:54

Как сэмулировать у TextBox свойство Numeric (C#)

Сообщение RealPalmman » Ср ноя 30, 2005 15:07

Как выяснилось, в .NET Framework у TextBox нет свойства Numeric.
Т.е. нельзя простым способом запретить ввод не цифровых символов. Кто-нибудь уже решил эту проблему?
Palm m105 -> iPAQ h2210 -> FS Loox 720
GPS BC-307 -> BT-338
Nokia 6310i -> Nokia 5500

Аватара пользователя
RealPalmman
Доктор (4 lvl)
Сообщения: 206
Зарегистрирован: Вт сен 02, 2003 17:54

Сообщение RealPalmman » Пт дек 09, 2005 16:23

Отвечаю сам:
Отлавливаем вводимые символы, если они не цифры, запрещаем ввод. Аналогично можно фильтровать любые символы.

Код: Выделить всё

public class FormGood : System.Windows.Forms.Form
{
		private bool nonNumberEntered = false;

		private void textBox_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
		{
			nonNumberEntered = false;
			if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
			{
				if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
				{
					if(e.KeyCode != Keys.Back)
					{
						nonNumberEntered = true;
					}
				}
			}
		}

		private void textBox_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
		{
			if(e.KeyChar == (char)13)
			{
				e.Handled=true;
				ok.Focus();
			}
			if (nonNumberEntered == true)
			{
				e.Handled = true;
			}
		}
}
Palm m105 -> iPAQ h2210 -> FS Loox 720
GPS BC-307 -> BT-338
Nokia 6310i -> Nokia 5500

Закрыто

Вернуться в «Программирование для КПК»