Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
kmaffa
304 / 301 / 146
Регистрация: 29.10.2012
Сообщений: 823
1

Валидация полей TextBox в WinForms

16.09.2015, 16:20. Просмотров 1555. Ответов 1
Метки нет (Все метки)

Есть форма, WinForms, на которой находится пару десятков полей TextBox. Поля TextBox трех видов:
- текстовые
- целочисленные
- дробные (2 знака после запятой)
1) Можно ли как то упростить процедуру проверки введенных данных в поля TextBox пользователем (например через использование атрибутов)?
2) И соответственно можно ли упростить проверку перед внесением данных в свойства объекта?
Если можно покажите пожалуйста на примере.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2015, 16:20
Ответы с готовыми решениями:

Валидация значений в TextBox
Как осуществить проверку возможности преобразования данных введенных в TextBox...

Очистка полей textbox от содержимого
День добрый. Подскажите как очищать поля от содержимого внем просле...

Привязка одного из полей класса к TextBox
Здравствуйте. Такие дела: Класс человек. Допустим, у него пока только имя....

Редактирование полей textbox через вторую форму редактирования
Помогите для тренировки)! Как передать данные на вторую форму через первую? Как...

Связать 5 TextBox и CheckBox для управлению активностью полей
Полазил по гуглу но не нашел не чего понятного... Есть пять textBox-ов и...

1
Storm23
Эксперт .NETАвтор FAQ
6567 / 3980 / 1447
Регистрация: 11.01.2015
Сообщений: 5,149
Записей в блоге: 32
16.09.2015, 16:42 2
Лучший ответ Сообщение было отмечено kmaffa как решение

Решение

kmaffa, Атрибутами можно было бы, но дело в том, что объявление контролов находятся в автогенерируемой части исходника, и прописывать атрибуты там бесполезно - там код генерируется заново.
Поэтому можно сделать так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            InitValidating();
        }
 
        private void InitValidating()
        {
            foreach(var tb in Controls.OfType<TextBox>())
                if(tb.Name.Contains("Float"))
                    tb.Validating += tbFloatValidating;
                else
                if(tb.Name.Contains("Int"))
                    tb.Validating += tbIntValidating;
        }
 
        private void tbFloatValidating(object sender, CancelEventArgs e)
        {
            var tb = sender as TextBox;
            float dummy;
            e.Cancel = !float.TryParse(tb.Text, out dummy);
        }
 
        private void tbIntValidating(object sender, CancelEventArgs e)
        {
            var tb = sender as TextBox;
            int dummy;
            e.Cancel = !int.TryParse(tb.Text, out dummy);
        }
    }
Текстбоксы для int нужно назвать так, что бы в имени было "Int", а для дробных - что бы в имени было "Float".
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2015, 16:42

Внести значения полей textbox в переменные и произвести с ними действия по формуле
блок схема программы решается по формуле t = L / ({v}_{1}+{v}_{2}) ...

Вывод в DataGridView полей некоторого экземпляра класса, в котором одно из полей является списком List
Здравствуйте, помогите плиз!!! Возникла потребность вывода в DataGridView полей...

Сумму с двух textBox вывести в третий textBox после нажатия button
Добрый день. Перерыла кучю книг, ео ненашла банального примера. Мне нужно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru