#1 14.08.12 12:36
C# IntegerUpDown textBox + валидация данных
вопрос первый:
Хочу в текстбокс вводить только целые числа из диапазона 0...359. Как сделать данную проверку стандартным нормальным способом, без изобретения колеса?
вопрос второй:
использую IntegerUpDown и textBox для отображения. функции такие (для нажатия на IntegerUpDown и textBox соответственно)
Код::
private void IntegerUpDown1_ValueChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
SelectedControl1.Text = IntegerUpDown1.Value.ToString();
}
private void SelectedControl1_TextChanged(object sender, TextChangedEventArgs e)
{
int number;
int.TryParse(SelectedControl1.Text.ToString(), out number);
IntegerUpDown1.Value = number;//ТУТ ВАЛИТСЯ!!!
}но до запуска приложения, оно падает на строчке с пометкой. Как исправить?
Исправлено Flinn (14.08.12 15:08)
Offline
#2 14.08.12 14:33
Re: C# IntegerUpDown textBox + валидация данных
первый вопрос решен. событием на выход из поля ввода
Код::
private void SelectedControl2_IsKeyboardFocusedChanged(object sender, DependencyPropertyChangedEventArgs e) {
TextBox textBox = sender as TextBox;
int iValue = -1;
if (Int32.TryParse(textBox.Text, out iValue) == true) {
if (iValue < -179) {
textBox.Text = "-179";
} else if (iValue > 180) {
textBox.Text = "180";
}
} else {
textBox.Text = "0";
}
}Offline
#3 15.08.12 17:51
Re: C# IntegerUpDown textBox + валидация данных
Flinn, я хочу тебя немного направить в другую сторону.
1. Ты должен понимать, что у тебя на клиенте(на форме) происходит ввод данных, которые ты отправляешь на сервер, поэтому обязательно делай валидацию на серваке, и если она не прошла. то давай об этом знать клиенту.
2. Пользователю, лучше не давать возможности ввода некорректных данных, этого можно добавиться, если у тебя выпадающий список будет содержать лишь ограниченный набор допустимых значений. Т.е. чем раньше, ты ситуацию предотвратишь, тем лучше. Понятно, что список получится довольно большой, ты можешь добиться его сокращения, с помощью фильтрации.
3. В любом случае точно не правильно, при вводе некорретного значения пользователем, использовать какое то дефолтное правильное значение. Это только в тупик пользователя введет.
Offline

