Вы хотите подключить событие DataGridView_CellValidating
для этого. Это может работать как таковое… пользователь вводит некоторый текст в столбец электронной почты… когда пользователь пытается «покинуть» ячейку, сработает событие CellValidating
. Именно здесь мы проверяем, находится ли проверяемая ячейка в столбце «Электронная почта». Если это и есть действительный адрес электронной почты, то ничего не происходит, и мы продолжаем. Однако, если текст НЕ является действительным адресом электронной почты, отображается окно сообщения с указанием неверного адреса электронной почты. Затем, после того как пользователь закроет окно сообщения ... ему будет «необходимо» ввести «действительный» адрес электронной почты в ячейку ИЛИ в этом случае введите пустую ячейку, чтобы продолжить.
Проверить сообщение можно Если сделать это несколькими способами, ссылка, предоставленная Zohar, является одним из способов проверки адреса и потребует использования библиотеки System.Net.Mail
. Существует также другой метод от MS, который использует регулярные выражения и работает хорошо ... Как проверить, что строки имеют правильный формат электронной почты
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) {
if (e.RowIndex >= 0 && dataGridView1.Columns[e.ColumnIndex].Name == "Email") {
if (!String.IsNullOrEmpty(e.FormattedValue.ToString())) {
if (!EmailIsValid(e.FormattedValue.ToString())) {
MessageBox.Show("Invalid email address: " + e.FormattedValue.ToString());
e.Cancel = true;
}
}
}
}
public bool EmailIsValid(string emailaddress) {
try {
MailAddress m = new MailAddress(emailaddress);
return true;
}
catch (FormatException) {
return false;
}
}