У меня есть окна из написанного на C# и вы хотите убедиться, что данные в каждом элементе управления (выпадающем списке, текстовое поле и т. Д.) Не имеют значения null перед сохранением данных в базе данных. У меня есть несколько форм, подобных этому в приложении. Как мне это сделать? Я думаю, что я создаю логическую функцию.Проверка элементов управления в форме Windows
ответ
Вы можете написать простой способ для перебора элементов управления в форме и проверки контрольных значений.
private bool CheckControls()
{
foreach (Control ctrl in this.Controls)
{
//Write the code to check whether the control value is null
//case: Testbox return true;
//case: Dropdown return true;
//case: Listbox return true;
//..etc
}
return false;
}
Я использовал старое приложение vb на работе, которое делало именно то, что вы описали. Благодаря! –
использовать ErrorProvider. Поместите поставщика ошибок в форму, а затем вы можете иметь функцию утилиты, которая может обрабатывать все элементы управления одним вызовом. Я использовал следующий код, чтобы убедиться, что что-то было введено в текстовое поле, вы можете расширить этот метод.
Метод полезности, который обрабатывал требуемые поля, я использовал поле тега, чтобы удержать конкретное сообщение об ошибке, поскольку я не использовал его ни для чего другого, и это было быстро и просто.
public static void TextBoxRequired_Validating(object sender, CancelEventArgs e, ErrorProvider errorProvider)
{
var textbox = (TextBox)sender;
var valid = !String.IsNullOrWhiteSpace(textbox.Text);
e.Cancel = !valid;
errorProvider.SetError(textbox, (valid ? string.Empty : textbox.Tag.ToString()));
}
Обработчик события вызова метода утилиты
void txtName_Validating(object sender, CancelEventArgs e)
{
ControlUtility.TextBoxRequired_Validating(sender, e, errorProvider1);
}
Спасибо! Я использовал некоторый аспект этого в моем коде –
Вы управляете данными, привязанными к модели? –
они связаны ADO. В db они настроены на не принимать значения NULL, но я хочу, чтобы обработка ошибок в приложении, а не код для разных пользователей. Как передавать их, чтобы заполнить все необходимые данные, прежде чем отправлять –