如何手动触发Datagridview.cellValidating?

Sau*_*abh 2 .net c# vb.net datagridview

我从另一个表中插入我的Datagridview中的几条记录,我想为我插入的每条记录调用CellValidating事件.请帮帮我.

这是我的代码

            m_Sqlstr = "Select Distinct RFID, Prod_Code, Lot_No From  ScanStk Where BatchNo = '" & strBatchno & "' "
            m_SqlCmd = New SqlCommand(m_Sqlstr, Con)
            Con.Open()
            RFIDReader = m_SqlCmd.ExecuteReader(CommandBehavior.CloseConnection)

            With m_BindingsrcDetail
                    While RFIDReader.Read
                        .AddNew()
                        .Current("SR") = m_BindingsrcDetail.Count
                        .Current("LOT_NO") = RFIDReader("LOT_NO").ToString.Trim
                        .Current("PROD_CODE") = RFIDReader("PROD_CODE").ToString
                        .Current("QUANTITY") = 1
                        GrdDetails.BeginEdit(False)
                        GrdDetails.CurrentRow.Cells("Prod_code").Value = RFIDReader("PROD_CODE").ToString
                        GrdDetails.EndEdit()
                    End While
            End With
Run Code Online (Sandbox Code Playgroud)

grddetails是网格的名称,m_BindingsrcDetail是grdDetails的数据源

根据This,您应该能够使用BeginEdit和EndEdit强制验证触发器.但它没有发生.

我在细胞验证中获取产品描述,MRP和其他细节.所以有必要打电话给它.

Jus*_*sso 7

您必须更改当前单元格,然后返回到它.试一试.您可能必须更改它,因为它尚未经过测试.

 BeginEdit();
 DataGridViewCell currentCell = GrdDetails.CurrentRow.Cells("Prod_code");
 EndEdit();
 CurrentCell = null;
 CurrentCell = currentCell;
Run Code Online (Sandbox Code Playgroud)

  • 注意,可能需要一个try/catch周围的'CurrentCell = null;`来检测验证失败. (3认同)