, , , , , :
pubilc , :
public bool validation1_valid = true;
public bool validation2_valid = true;
Then in the DataGrid method _CellValueChanged:
private void gridView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
string cellHeader = gridView.Columns[e.ColumnIndex].HeaderText.ToString();
if (cellHeader == "Something" || cellHeader == "Something Else")
{
if (gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null
&& gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString() != "")
{
if (System.Text.RegularExpressions.Regex.IsMatch(gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(), @"^(?:^\d+$|)$"))
{
switch (cellHeader)
{
case "Something":
validation1_valid= true;
break;
case "Something Else":
validation2_valid= true;
break;
}
gridView.Columns[e.ColumnIndex].DefaultCellStyle.ForeColor = Color.Black;
gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = String.Empty;
gridView.Rows[e.RowIndex].ErrorText = String.Empty;
}
else
{
switch (cellHeader)
{
case "Something":
validation1_valid = false;
break;
case "Something Else":
validation2_valid = false;
break;
}
gridView.Columns[e.ColumnIndex].DefaultCellStyle.ForeColor = Color.Red;
gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = "Value must be numeric.";
}
}
else
{
switch (cellHeader)
{
case "Something":
validation1_valid = true;
break;
case "Something Else":
validation2_valid = true;
break;
}
gridView.Columns[e.ColumnIndex].DefaultCellStyle.ForeColor = Color.Black;
gridView.Rows[e.RowIndex].Cells[e.ColumnIndex].ErrorText = String.Empty;
gridView.Rows[e.RowIndex].ErrorText = String.Empty;
}
}
if (validation1_valid == false || validation2_valid == false)
{
btnSave.Enabled = false;
gridView.Rows[e.RowIndex].ErrorText = "There are validation errors.";
}
else if (validation1_valid == true && validation2_valid == true)
{
btnSave.Enabled = true;
gridView.Rows[e.RowIndex].ErrorText = String.Empty;
}
}
source
share