2

朋友们,我在我的 Visual Studio 2005 Windows 应用程序中使用了一个 datagridview 控件。这里我有 5 列。在这 5 个中,第 2(colIndex 1) 和第 3(colIndex 2) 列具有文本数据类型,第 4(colIndex 3) 和 5th(colIndex 4) 具有双数据类型列。现在我要检查 colIndex 1 和 2 的单元格值长度是否大于特定值(colIndex 1 为 10,colIndex 2 为 100)值?如果是这样,那么我必须显示相应的消息。您能否建议我应该在哪个 datagridview 事件中检查输入/键入的单元格值以及如何检查该值?我在 CellValidating 事件中使用了以下代码

    string columnName = dgView.Columns[e.ColumnIndex].Name;

        if (dgView.Rows[e.RowIndex].Cells[dgViewColumn.TAN].Value.ToString().Length > 10)
        {
            e.Cancel = true;
            MessageBox.Show(columnName + " must be 10 Digits Long!");
        }

但它显示的是下一列的 columnName。由于我有一个网格功能,按下“Enter”键会将焦点移动到下一个单元格,它显示错误为“操作未成功,因为程序无法提交或退出单元格值更改。” 在 CellValidating 事件中。请帮我。

4

1 回答 1

4

我希望您知道每个单元格都会触发该事件,因此您可能会看到该消息,因为它可能会因数据类型列CellValidating的长度部分而失败。double

因此,您应该检查您正在分别检查第一列和第二列,然后检查长度。

您也可以选择使用e.FormattedValue来获取单元格中的当前值。

您也可以MaxInputLength在属性中设置 Textbox 列(以防万一)

于 2012-03-28T10:03:43.580 回答