2013-05-14 2 views
0

У меня есть окна из написанного на C# и вы хотите убедиться, что данные в каждом элементе управления (выпадающем списке, текстовое поле и т. Д.) Не имеют значения null перед сохранением данных в базе данных. У меня есть несколько форм, подобных этому в приложении. Как мне это сделать? Я думаю, что я создаю логическую функцию.Проверка элементов управления в форме Windows

+0

Вы управляете данными, привязанными к модели? –

+0

они связаны ADO. В db они настроены на не принимать значения NULL, но я хочу, чтобы обработка ошибок в приложении, а не код для разных пользователей. Как передавать их, чтобы заполнить все необходимые данные, прежде чем отправлять –

ответ

2

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

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; 
    } 
+0

Я использовал старое приложение vb на работе, которое делало именно то, что вы описали. Благодаря! –

1

использовать 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); 
} 
+0

Спасибо! Я использовал некоторый аспект этого в моем коде –