我有一个3X3网格,在创建时有空(没有值)单元格。
我想检查用户是否已将某些数据输入到单元格中。
它没有绑定到任何数据源。我不想遍历每个单元格并检查数据并中断第一个找到的数据。
我想要一些小解决方案。同样的事情必须以多种形式完成。我会为它做一些通用的例程或扩展方法。
PS: 我所拥有的是一个有三个参数的网格
ParamA ParamB ParamC
Short
Medium
Long
当用户填写任何数据时。我必须将它添加到一个集合中。如果没有关键数据,那么什么都不做。
答案 0 :(得分:0)
考虑使用KeyPress事件,或者更好的是CellEndEdit on MSDN
以下显示了您所在位置和单元格内容的消息框(更正):
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
string message = string.Format("Cell End Edit: just left row: {0} and column {1}.\n Value entered:{2}", e.RowIndex, e.ColumnIndex,
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString());
MessageBox.Show(this, message, "You were here");
}
为了重用,您可以创建自己的用户控件或创建基本表单类。
答案 1 :(得分:0)
您可以创建一个整数值EmptyFieldsCount
,并在每次用户更新单元格时更新它。
答案 2 :(得分:0)
如果选中为真,则选中1列复选框:
Dim dgv1 As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
Dim headerText As String = DataGridView1.Columns(e.ColumnIndex).HeaderText
If dgv1.Cells(0).Value = True Then
If Not headerText.Equals("Short Desc") Then Return
If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then
DataGridView1.Rows(e.RowIndex).ErrorText = "Short Desc Can not be blank ! "
e.Cancel = True
End If
End If
没有复选框:
Dim dgv1 As DataGridViewRow = DataGridView1.Rows(e.RowIndex)
Dim headerText As String = DataGridView1.Columns(e.ColumnIndex).HeaderText
If Not headerText.Equals("Short Desc") Then Return
If String.IsNullOrEmpty(e.FormattedValue.ToString()) Then
DataGridView1.Rows(e.RowIndex).ErrorText = "Short Desc Can not be blank ! "
e.Cancel = True
End If**