testbox在gridview的特定行中进行验证
本文关键字:验证 gridview testbox | 更新日期: 2023-09-27 17:50:41
我有一个带有模板列的网格视图,在ItemTemplate中,我有一个与sqldatasource绑定的文本框,我想让这个文本框在第3行中只输入数字,在其他行中正常键入任何东西?
- 在editingcontrolshow中,检查当前单元格是否位于所需列中。
- 在editingcontrolshow中注册KeyPress的新事件(如果上述条件为真)。
- 删除之前在editingcontrolshow中添加的任何KeyPress事件。
-
在KeyPress事件中,检查如果键不是数字然后取消输入。
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { e.Control.KeyPress -= new KeyPressEventHandler(Column1_KeyPress); if (dataGridView1.CurrentCell.ColumnIndex == 0) //Desired Column { TextBox tb = e.Control as TextBox; if (tb != null) { tb.KeyPress += new KeyPressEventHandler(Column1_KeyPress); } } } private void Column1_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) { e.Handled = true; } }
代码礼貌-在Keypress事件中使特定列只接受datagridview中的数值