Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 20

Работа с textbox

10.05.2017, 17:44. Показов 2253. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Не так давно занимаюсь c#.
Есть программа. Имеются, почти, 50 TextBox-ов. Необходимо ограничить ввод различных данных. Грубо говоря 1-10 только целые числа, 20-30 только дробные и т.д. Для это было реализовано что-то подобное:
C#
1
2
3
4
5
6
7
8
private void textBox38_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
        {           
            if (chekedinging == 2)
            {
                Proof_KeyPress_canttouchthis(textBox38, e);
            }
      
        }
где Proof_KeyPress_canttouchthis
C#
1
2
3
4
5
6
7
8
9
10
public static void Proof_KeyPress_canttouchthis(object sender, KeyPressEventArgs e)
        {
TextBox TBox = (TextBox)sender;
            if (!(Char.IsDigit(e.KeyChar)) || (Char.IsDigit(e.KeyChar)) || (e.KeyChar == (char)Keys.Delete) || (e.KeyChar == (char)Keys.Back))
            {
                {
                    e.Handled = true;
                }
            }
}
Все работает и все хорошо.
Но вопрос в том что можно ли как-то сократить число кода? 50 textbox-ов на описание каждого минимум по 7 строк, что-то не то.
Я так предполагал, можно запускать проверку по нажатию button-а, проверять все перед расчетом. Тогда при каждом нажатии "Пуск", запускается предварительно проверка измененная Proof_KeyPress_canttouchthis(textBox38), например. Если я правильно понимаю это подчистит примерно 300 строк.
Вопрос... Можно как-либо сделать проверку, универсальную функцию, для проверки всех текстбоксов? Первая версия мне больше нравится, для каждого tb она проверяет событие ввода. если удовлетворяет критериям то позволяет ввод символа.
Может есть функция или что-либо что ловит все изменения на форме и от этого прыгать? Подскажите.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.05.2017, 17:44
Ответы с готовыми решениями:

Работа с TextBox. Текст из multiline TextBox в несколько простых TextBox
Как перенести большой текст из одного мультилайн textbox в несколько обычных textbox у которых задано количество символов(MaxLength) ?

Работа с массивом элементов класса TextBox. Окрашивание textBox при нажатии мыши на него
Доброго времени суток. До запуска программы не известно, какое количество элементов класса TextBox потребуется, поэтому по ходу создается...

Работа с textbox. Сохранение текста при выходе из программы только если textbox имеет текст
Создал форму в которой есть textbox и ToolStripMenuItem - кнопка выхода из приложения. Идея в том, что если textbox не имеет символов, то...

4
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
10.05.2017, 17:48
ice42, ты можешь всем текстбоксам задать один метод-обработчик проверки.
0
0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 20
10.05.2017, 18:13  [ТС]
не совсем понимаю как это работает, можете на пальцах подсказать?)
при запуске программы мне нужно отлавливать (KeyPressEventArgs e)?
нужно какой-то ивент сделать?)
он может как-нибудь, в плохих руках, повлиять на работу программы?
если я пользуюсь tb.readonly, с этим обработчиком ввод также будет запрещен?
0
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
11.05.2017, 10:52
Лучший ответ Сообщение было отмечено ice42 как решение

Решение

ice42, у тебя щас есть, например, 10 одинаковых методов, которые проверяют 10 текстбоксов на то, что вводится целое число. Предполагаю, что они работают. Удаляй 9 из 10 методов, оставь один, назови его как-нибудь универсально (TextBox_IntCheck, например).
Теперь открываешь дизайнер формы, выделяешь все эти 10 текстбоксов, открываешь свойства, нажимаешь на иконку с молнией, открываются ивенты, находишь там свой KeyPress, тыкаешь на него 1 раз, появляется стрелочка справа, тыкаешь ее, выпадает список методов, там выбираешь свой TextBox_IntCheck.
Профит. Теперь этот метод будет проверять все 10 текстбоксов.
1
0 / 0 / 1
Регистрация: 08.12.2014
Сообщений: 20
11.05.2017, 15:09  [ТС]
И все?!))
Огромное вам Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2017, 15:09
Помогаю со студенческими работами здесь

Работа с textBox
Здравствуйте! Как можно узнать, не пуста ли строка textBox, и удалить лишние пробелы в начале и конце строки? Спасибо!

Работа с TextBox
Не Подскажите? Имеется TextBox1.Text = NV00000775513( переменная) и есть TextBox2.Text равный например 5 ( переменная). Как сделать...

Работа с TextBox
Как получить значения из TextBox в другой класс(не класс формы) у меня почему то метод не принимает значения из textbox, а работает тока с...

Работа с textbox и БД
У меня берется последняя запись с БД и прибавляется 1,а как реализовать такое,чтобы если БД пустая,то при загрузке формы отображалась...

Работа с textBox
Как сделать так, чтобы можно было в textBox1 ввести строку символов, а в textBox2 при нажатии на кнопку вывести эту же строку, только цифры...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru