Это, очевидно, в среде Win Forms.
Вот ответ на вопрос.
Я принимаю данные в качестве источника данных для вида сетки
DataTable dtSource = new DataTable();
#region Data Table Creation
dtSource.Columns.Add("NumericColumn1");
dtSource.Columns.Add("NumericColumn2");
dtSource.Columns.Add("NumericColumn3");
#endregion
#region Add Rows
dtSource.Rows.Add("1", "2", "3");
dtSource.Rows.Add("4", "5", "6");
dtSource.Rows.Add("7", "8", "9");
#endregion
dataGridView1.DataSource = dtSource;
Моя цель состоит в том, чтобы проверить, ввел ли пользователь что-либо в какую-либо ячейку, кроме числового значения, после нажатия кнопки SAVE должно появиться сообщение об ошибке.
В событии проверки ячейки я написал следующее
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
dataGridView1.Rows[e.RowIndex].ErrorText = "";
if (!(IsNumeric(e.FormattedValue.ToString(), System.Globalization.NumberStyles.Integer)))
{
flag = !flag;
dataGridView1.Rows[e.RowIndex].ErrorText = "Only numeric values are accepted";
}
else
{
flag = true;
}
}
Функция IsNumeric аналогична
public bool IsNumeric(string Val, System.Globalization.NumberStyles NumberStyle)
{
Double result;
return Double.TryParse(Val, NumberStyle, System.Globalization.CultureInfo.CurrentCulture, out result);
}
И в событии кнопки SAVE я проверяю статус проверки
private void SAVE_Click(object sender, EventArgs e)
{
if (flag == true)
{
MessageBox.Show("Every thing is ok");
}
}
Надеюсь, это поможет