Перейти к содержимому

Как сделать проверку textbox c

  • автор:

один метод для проверки вводимых значений для каждого 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. Чтобы создать представление "Создать", выполните следующие действия.

  1. Щелкните правой кнопкой мыши действие Create() в контроллере продукта и выберите пункт меню Добавить представление (см. рис. 1).
  2. В диалоговом окне Добавление представления проверка флажок Создать строго типизированное представление (см. рис. 2).
  3. В раскрывающемся списке Просмотреть класс данных выберите класс Product.
  4. В раскрывающемся списке Просмотреть содержимое выберите Создать.
  5. Нажмите кнопку Добавить.

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

Снимок экрана: файл product Controller dot c s в редакторе кода, в котором показано контекстное меню с выделенным пунктом меню Добавить представление.

Снимок экрана: диалоговое окно

Рис. 02. Создание строго типизированного представления (щелкните, чтобы просмотреть полноразмерное изображение)

После выполнения этих действий вы получите представление Создание в листинге 2.

Листинг 2. Views\Product\Create.aspx

" %> Create  

Create

Fields

%>

В листинге 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 (1 

    2) Теперь в разделе пространств имён окна или страницы XAML объявляем пространство имён, в котором у нас будут валидаторы, например:

    3) Далее в коде окна или страницы XAML для элемента, который нуждается в проверке, указываем этот валидатор:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *