Официальный сайт студ.городка НГТУ
Программирование и БД » C# IntegerUpDown textBox + валидация данных 

#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

sav
Профиль

Re: C# IntegerUpDown textBox + валидация данных

Flinn, я хочу тебя немного направить в другую сторону.

1. Ты должен понимать, что у тебя на клиенте(на форме) происходит ввод данных, которые ты отправляешь на сервер, поэтому обязательно делай валидацию на серваке, и если она не прошла. то давай об этом знать клиенту.
2. Пользователю, лучше не давать возможности ввода некорректных данных, этого можно добавиться, если у тебя выпадающий список будет содержать лишь ограниченный набор допустимых значений. Т.е. чем раньше, ты ситуацию предотвратишь, тем лучше. Понятно, что список получится довольно большой, ты можешь добиться его сокращения, с помощью фильтрации.
3. В любом случае точно не правильно, при вводе некорретного значения пользователем, использовать какое то дефолтное правильное значение. Это только в тупик пользователя введет.

Offline

Программирование и БД » C# IntegerUpDown textBox + валидация данных 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.041 сек.
Выполнено 11 запросов.