DataGridView Validation

本文关键字:Validation DataGridView | 更新日期: 2023-09-27 18:35:28

对于文本框,我有一个数据验证方法,如下所示:

string allowedCharacterSet = "1234567890'b'n";
if (allowedCharacterSet.Contains(e.KeyChar.ToString()) == false)
{
        e.Handled = true;
}

它的工作方式是,如果用户键入的字符不在 allowCharacterSet 中,则该字符不会出现在文本框中,从而阻止他们输入无效数据。

我的问题是:如何将其应用于 DataGridView?假设我有 3 个单元格 - 第一个是名称,所以我只想要字母表。第二个是数量整数,因此只有数字。第三个是电子邮件地址,所以我在 allowedCharacterSet 字符串中有数字、字母、句点和 @ 符号。这些事情我可以很容易地完成,但由于您无法将 KeyPress 事件附加到单个 DataGridView 单元格,因此我不确定该怎么做。

DataGridView Validation

必须在 DataGridView Cell 验证事件中应用它。下面是我所做的一些示例,用于将值限制为仅在 0-100 之间。您可以编辑验证。

// validation on dgvLotDetail's Yield Column (only numeric and between 0 to 100 allowed)
    private void dgvLotDetail_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (dgvLotDetail.Rows[e.RowIndex].Cells[txtYield.Index].Value != null)
        {
            if (e.ColumnIndex == txtYield.Index)
            {
                int i;
                if ( !int.TryParse(Convert.ToString(e.FormattedValue), out i) ||
                    i < 0 ||
                    i > 100 )
                {
                    e.Cancel = true;
                    MessageBox.Show("Enter only integer between 0 and 100.");
                }
                else
                {
                }
            }
        }
    }
相关文章: