c# - 是否可以在输入时检查 datagridview 中的单元格值长度?

标签 c# winforms datagridview maxlength

friend 们,我正在我的 Visual Studio 2005 Windows 应用程序中使用 datagridview 控件。这里我有 5 列。在这 5 个列中,第 2(colIndex 1) 和第 3(colIndex 2) 列具有文本数据类型,第 4(colIndex 3) 和第 5(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!");
        }

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

最佳答案

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

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

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

您还可以设置MaxInputLength属性中的文本框列(如果您需要它)

关于c# - 是否可以在输入时检查 datagridview 中的单元格值长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9905051/

相关文章:

c# - 如何在 winforms 应用程序中设置数据网格滚动条的位置?

mysql - 检查是否有新行添加到 DataGridView

c# - 禁用除滚动之外的 DataGridView

c# - "Base b = new Derived()"是哪个 OO 概念的一个例子?

c# - SQL 插入 : Duplicate Key Value Specified?

c# - 从 C# 中的托管 Windows 窗体设计器获取项目

c# - 将父控件的属性传递给子控件

c# - 实用程序类与子类化 .net 控件

c# - 在添加自己的 LinearLayout 期间无法激活 JNI 句柄 - Xamarin Android

javascript - AntiForgeryToken 无法跨同一解决方案的子项目进行验证