один метод для проверки вводимых значений для каждого textbox
как создать один метод для проверки вводимых значений для каждого из 6 textbox-ов. Например, при вводе символов в поле int id — во время работы программы появлялось уведомление о невозможности символьного ввода ввода, аналогично с полем double, при вводе пустой строчки — тоже уведомление с просьбой заполнить. При этом все уведомления должны добавляться в список и выводиться в консоль. Cсылка на проект https://pastebin.com/JXK6NQdz .
private List errList = new List(); private void validator(TextBox tb) < if (tb.Name.Contains("Int")) < int n; if (!int.TryParse(tb.Text, out n)) < string s1 = "Не число! Пожалуйста, введите число!"; errList.Add(s1); MessageBox.Show(s1, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); >> else if (tb.Name.Contains("Double")) < double n; if (!double.TryParse(tb.Text, out n)) < string s2 = "Не число! Пожалуйста, введите число!"; errList.Add(s2); MessageBox.Show(s2, "Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); >> else
Отслеживать
задан 4 мар 2019 в 21:21
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Если абстрагироваться от WinForms, то можно поступить следующим способом:
-
Создадим универсальный метод конвертации:
private static T Check(string value, string msg) < var converter = TypeDescriptor.GetConverter(typeof(T)); if (converter.IsValid(value)) < return (T)converter.ConvertFromString(value); >Console.WriteLine(msg); return default(T); >
Так, как у меня консольный проект, то я в просто вывожу сообщение об ошибке в консоль ( Console.WriteLine(msg); ), ну и static по этой же причине.
Вызов будет примерно следующим:
var result = Check("value", "Не число!");
- Далее мы можем сделать словарь, который будет содержать текст ошибки, название вашей кнопки и т.д.:
public static Dictionary> ErrDictionary = new Dictionary> < ["int"] = value =>Check(value, "Не является числом!"), ["double"] = value => Check(value, "Не является числом с плавающей запятой!") >;
Вызов тогда получим примерно следующий:
var result = ErrDictionary["int"]("value");
Но тут есть одно но — result будет иметь тип object , ибо стандартный словарь не дает использовать Generic без лишнего кода.
Вопрос Проверка Текста в textbox c#
Ку. Подскажите пожалуйста, как можно сделать проверку на определённый тект в TextBox.
В TextBox нужно указать директорию до файла. Я хочу сделать «проверку» на правильность указанной директории. Можно сделать
if (TextBox1.Text == «World_of_Tanks_RU»)
MessageBox.Show («успешно»);
Else
MessageBox.Show («Неверно указана директория»);
В таком случаешь если в TextBox текст World_of_Tanks_RU тогда всё норм, но если мы изменим хоть 1 символ в TextBox, то всё пойдёт по пизде. Но можно ли сделать так что бы проверялась только часть текста не обращая внимания на другие символы буквы и цифры? (Если в TextBox существует фраза World_of_Tanks_RU, тогда всё норм.) Если нет фразы World_of_Tanks_RU, то ошибка. Это нужно для того, что бы можно было указывать разную директорию(у всех она разная, разные диски, разные названия папок), но при этом если в указанной челом директории есть папка с названием World_of_Tanks_RU, тогда MessageBox.Show («успешно»);
Irval
Выполнение простой проверки (C#)
Узнайте, как выполнять проверку в ASP.NET приложении MVC. В этом руководстве Стивен Уолтер знакомит вас с состоянием модели и вспомогательными средствами ПРОВЕРКИ HTML.
Цель этого руководства — объяснить, как можно выполнить проверку в ASP.NET приложении MVC. Например, вы узнаете, как запретить отправку формы, которая не содержит значения для обязательного поля. Вы узнаете, как использовать состояние модели и вспомогательные средства HTML проверки.
Основные сведения о состоянии модели
Для представления ошибок проверки используется состояние модели или, точнее, словарь состояний модели. Например, действие Create() в листинге 1 проверяет свойства класса Product перед добавлением класса Product в базу данных.
Не рекомендуется добавлять проверку или логику базы данных в контроллер. Контроллер должен содержать только логику, связанную с управлением потоком приложения. Мы берем ярлык, чтобы все было проще.
Листинг 1. Controllers\ProductController.cs
// // POST: /Product/Create [AcceptVerbs(HttpVerbs.Post)] public ActionResult Create([Bind(Exclude="Id")] Product productToCreate) < // Validation logic if (productToCreate.Name.Trim().Length == 0) ModelState.AddModelError("Name", "Name is required."); if (productToCreate.Description.Trim().Length == 0) ModelState.AddModelError("Description", "Description is required."); if (productToCreate.UnitsInStock
В листинге 1 проверяются свойства Name, Description и UnitsInStock класса Product. Если какое-либо из этих свойств не проходит проверочный тест, в словарь состояния модели (представленный свойством ModelState класса Controller) добавляется ошибка.
При наличии ошибок в состоянии модели свойство ModelState.IsValid возвращает значение false. В этом случае html-форма для создания нового продукта переигрывается. В противном случае при отсутствии ошибок проверки новый продукт добавляется в базу данных.
Использование вспомогательных средств проверки
Платформа ASP.NET MVC включает в себя два вспомогательных средства проверки: вспомогательное средство Html.ValidationMessage() и вспомогательное средство Html.ValidationSummary(). Эти два вспомогательных компонента используются в представлении для отображения сообщений об ошибках проверки.
Вспомогательные функции Html.ValidationMessage() и Html.ValidationSummary() используются в представлениях Create и Edit, которые автоматически создаются шаблоном ASP.NET MVC. Чтобы создать представление "Создать", выполните следующие действия.
- Щелкните правой кнопкой мыши действие Create() в контроллере продукта и выберите пункт меню Добавить представление (см. рис. 1).
- В диалоговом окне Добавление представления проверка флажок Создать строго типизированное представление (см. рис. 2).
- В раскрывающемся списке Просмотреть класс данных выберите класс Product.
- В раскрывающемся списке Просмотреть содержимое выберите Создать.
- Нажмите кнопку Добавить.
Перед добавлением представления обязательно выполните сборку приложения. В противном случае список классов не будет отображаться в раскрывающемся списке Просмотреть класс данных .


Рис. 02. Создание строго типизированного представления (щелкните, чтобы просмотреть полноразмерное изображение)
После выполнения этих действий вы получите представление Создание в листинге 2.
Листинг 2. Views\Product\Create.aspx
" %> Create Create
%>
В листинге 2 вспомогательное средство Html.ValidationSummary() вызывается непосредственно над HTML-формой. Эта вспомогатель используется для отображения списка сообщений об ошибках проверки. Вспомогательное средство Html.ValidationSummary() отображает ошибки в маркированный список.
Вспомогатель Html.ValidationMessage() вызывается рядом с каждым из полей формы HTML. Эта вспомогатель используется для отображения сообщения об ошибке рядом с полем формы. В примере с листингом 2 вспомогающая функция Html.ValidationMessage() отображает звездочку при возникновении ошибки.
На странице на рисунке 3 показаны сообщения об ошибках, отображаемые вспомогательными средствами проверки при отправке формы с отсутствующими полями и недопустимыми значениями.

Рис. 03. Представление "Создать", отправленное с проблемами (щелкните, чтобы просмотреть полноразмерное изображение)
Обратите внимание, что внешний вид полей ввода HTML также изменяется при возникновении ошибки проверки. Вспомогатель Html.TextBox() отображает атрибут class="input-validation-error" при возникновении ошибки проверки, связанной со свойством, отображаемым вспомогательным объектом Html.TextBox().
Существует три класса каскадных таблиц стилей, которые используются для управления внешним видом ошибок проверки:
- input-validation-error — применяется к тегу , отображаемого вспомогательным модулером Html.TextBox().
- field-validation-error — применяется к тегу , отображаемого вспомогательным методом Html.ValidationMessage().
- validation-summary-errors — применяется к тегу
-
, отображаемого вспомогательной функцией Html.ValidationSummary().
Вы можете изменить эти классы каскадных таблиц стилей и, следовательно, изменить внешний вид ошибок проверки, изменив файл Site.css, расположенный в папке Содержимое.
Класс HtmlHelper включает статические свойства только для чтения для получения имен классов CSS, связанных с проверкой. Эти статические свойства называются ValidationInputCssClassName, ValidationFieldCssClassName и ValidationSummaryCssClassName.
Предварительная проверка и проверка после привязки
Если отправить HTML-форму для создания продукта и ввести недопустимое значение для поля цена и значение для поля UnitsInStock, вы получите сообщения проверки, отображаемые на рисунке 4. Откуда берутся эти сообщения об ошибках проверки?

Рис. 04. Ошибки предварительной привязки проверки (щелкните для просмотра полноразмерного изображения)
На самом деле существует два типа сообщений об ошибках проверки: сообщения, созданные до того, как поля HTML-формы привязаны к классу, и сообщения, созданные после привязки полей формы к классу. Иными словами, существуют ошибки предварительной привязки и ошибки проверки после привязки.
Действие Create(), предоставляемое контроллером Product в листинге 1, принимает экземпляр класса Product. Сигнатура метода Create выглядит следующим образом:
public ActionResult Create([Bind(Exclude="Id")] Product productToCreate)
Значения полей HTML-формы из формы Создания привязаны к классу productToCreate с помощью связывателя модели. Связыватель модели по умолчанию автоматически добавляет сообщение об ошибке в состояние модели, если не удается привязать поле формы к свойству формы.
Связыватель модели по умолчанию не может привязать строку apple к свойству Price класса Product. Вы не можете назначить строку десятичному свойству. Поэтому связыватель модели добавляет ошибку в состояние модели.
Связыватель модели по умолчанию также не может присвоить значение NULL свойству, которое не принимает значения NULL. В частности, связыватель модели не может присвоить свойству UnitsInStock значение NULL. Опять же, связыватель модели отступает и добавляет сообщение об ошибке в состояние модели.
Если вы хотите настроить внешний вид этих предварительных сообщений об ошибках, необходимо создать строки ресурсов для этих сообщений.
Итоги
Цель этого руководства состояла в том, чтобы описать основные механизмы проверки в ASP.NET платформы MVC. Вы узнали, как использовать состояние модели и вспомогательные средства HTML проверки. Мы также обсудили различие между предварительной привязкой и проверкой после привязки. В других руководствах мы обсудим различные стратегии перемещения кода проверки из контроллеров и в классы моделей.
Проверка значений, вводимых в поле TextBox, в XAML
В WPF имеется специальный стандартный механизм, позволяющий выполнять проверку (валидацию) данных, вводимых пользователем в текстовое поле TextBox. Этот механизм называется правилами проверки (validation rule). Для полей ввода, в которые введены недопустимые значения, в WPF даже определён свой стиль: красная рамка вокруг элемента TextBox. Конечно, его можно переопределить.
Чтобы воспользоваться стандартным валидатором, нужно выполнить три простых шага. Давайте рассмотрим их на таком примере: есть свойство MyProperty типа Integer, и его значение должно лежать в границах от 1 до 10.
1) Сначала создаём класс, который является наследником класса ValidationRule:
Namespace MyProject.Validators Public Class MyPropertyValidationRule Inherits ValidationRule Public Overrides Function Validate(value As Object, cultureInfo As CultureInfo) As ValidationResult Dim v As Integer If Integer.TryParse(value.ToString(), v) Then If (12) Теперь в разделе пространств имён окна или страницы XAML объявляем пространство имён, в котором у нас будут валидаторы, например:
3) Далее в коде окна или страницы XAML для элемента, который нуждается в проверке, указываем этот валидатор: