我有一个datagridview,其中包括了两个验证,例如单元格值不为空,并且单元格值应在(1,9)范围内。但是我还想确保只有在整个datagridview中都填充了有效值之后,才启用计算按钮。我尝试使用foreach和for来检查cellvalue是否不为空,但是第一次迭代后立即启用了该按钮。只有在所有单元格均已填充并进行相应验证的情况下,才可以启用按钮吗?
下面是我的代码。我对C#有点陌生,我也想知道我是否正在使用正确的datagridview事件来实现这一目标。
private void dataGridView_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
int r = e.RowIndex;
int c = e.ColumnIndex;
foreach (DataGridViewRow row in dataGridView.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if ((cell.Value != null) || cell.Value != DBNull.Value || !(String.IsNullOrEmpty(cell.Value.ToString())))
{
Cal.Enabled = true;
}
}
}
}
您需要在条件中使用“ AND”而不是“ OR”。尝试
if ((cell.Value != null) && cell.Value != DBNull.Value && !(String.IsNullOrEmpty(cell.Value.ToString())))
{
Cal.Enabled = true;
}