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 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
{
}
}
}
}