gpt4 book ai didi

c# - DataGridView 限制用户输入

转载 作者:太空狗 更新时间:2023-10-29 20:13:53 35 4
gpt4 key购买 nike

是否可以通过 RegEx 限制用户对 DataGridView 单元格的输入?例如,将单元格输入格式设置为类似这样的 [0-9]{2} 以禁止用户输入 2 位数字以外的内容。

更新对不起,我不是很清楚。我知道 CellValidation 事件,我可以在用户输入后检查输入的值。但我想知道我是否可以在 此事件之前防止错误的用户输入。我的意思是,当单元格正则表达式为 [0-9] 时,用户无法输入字母。有可能吗?

最佳答案

如果您想在键入时防止出现无效值,您可以处理 EditingControl.KeyPress 事件。下面的示例代码。但是,您必须修改正则表达式以允许不完整的值。而且您仍然应该使用适当的验证,因为还有其他方法可以将数据放入网格(例如复制粘贴)。

    private string pattern = "^[0-9]{0,2}$";

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
dataGridView1.EditingControl.KeyPress -= EditingControl_KeyPress;
dataGridView1.EditingControl.KeyPress += EditingControl_KeyPress;
}

private void EditingControl_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar))
{
Control editingControl = (Control)sender;
if (!Regex.IsMatch(editingControl.Text + e.KeyChar, pattern))
e.Handled = true;
}
}

关于c# - DataGridView 限制用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15517205/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com