检查DatagridView是否为空(没有值)或不是?

时间:2010-11-01 13:20:08

标签: c# collections datagridview

我有一个3X3网格,在创建时有空(没有值)单元格。

我想检查用户是否已将某些数据输入到单元格中。

它没有绑定到任何数据源。我不想遍历每个单元格并检查数据并中断第一个找到的数据。

我想要一些小解决方案。同样的事情必须以多种形式完成。我会为它做一些通用的例程或扩展方法。

PS: 我所拥有的是一个有三个参数的网格

        ParamA        ParamB         ParamC
Short
Medium
Long

当用户填写任何数据时。我必须将它添加到一个集合中。如果没有关键数据,那么什么都不做。

3 个答案:

答案 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**