Ja zaproponuję inny sposób walidacji danych. Za pomocą DataTable :)
Skoro mamy wrzucać dane do bazy danych, czyli do jakiegoś DataTable, to czemu nie wykorzystac dataTable do sprawdzenia poprawności wpisów...
Załóżmy, że mam na formatce trzy textBoxy (textBox1, textBox2, textBox3) z których każdy trzyma inne dane - String, Double, DateTime.
Tworzę więc sobie tabelę, która ma takie trzy pola:
DataTable dt = new DataTable();
dt.Columns.Clear();
dt.Columns.Add("Nazwa", Type.GetType("System.String"));
dt.Columns.Add("Data", Type.GetType("System.DateTime"));
dt.Columns.Add("Liczba", Type.GetType("System.Double"));
dt.Rows.Add(dt.NewRow());
W ostatniej linijce jest dodanie nowego rekordu, gdyż inaczej ten sposób nie zadziała.
I teraz 'wiążę' textboxy z odpowiednimi kolumnami tabeli:
textBox1.DataBindings.Add(new Binding("Text", dt, "Nazwa", true));
// powiązanie formatu tabeli z polem textowym - ostatni parametr odpowiada za format.
textBox2.DataBindings.Add(new Binding("Text", dt, "Liczba", true));
textBox3.DataBindings.Add(new Binding("Text", dt, "Data", true));
I to juz właściwie koniec.
Program nie pozwala wyjść z pola, dopóki format mu się nie zgadza... :)
Dodatkowo NIE JEST WAŻNE jak wpiszesz datę - czy z ., czy z /, czy też napiszesz "7 lipiec 2009" - i tak po opuszczeniu pola będziesz miał tam datę zgodną z ustawieniami regionalnymi...
Wydaje mi się, że jest to najlepszy sposób dla początkujących.
pozdrawiaMM