testbox在gridview的特定行中进行验证

本文关键字:验证 gridview testbox | 更新日期: 2023-09-27 17:50:41

我有一个带有模板列的网格视图,在ItemTemplate中,我有一个与sqldatasource绑定的文本框,我想让这个文本框在第3行中只输入数字,在其他行中正常键入任何东西?

testbox在gridview的特定行中进行验证

  • 在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中的数值