在必须只接受数字的网格视图中有一个文本框类型列“数量”。如下所示。代码运行良好,但仅来自第二个输入。我只想在这里使用keydown。
private void GridViewSale_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (GridViewSale.CurrentCell.ColumnIndex == 4) //Allow only numbers for QTY column
{
TextBox Qty = e.Control as TextBox;
Qty.KeyDown += new KeyEventHandler(Qty_KeyDown);
}
}
void Qty_KeyDown(object sender, KeyEventArgs e)
{
if ((e.KeyValue >= 48 && e.KeyValue <= 57) || (e.KeyValue >= 96 && e.KeyValue <= 105)//Allows numerics
e.SuppressKeyPress = false;
else
e.SuppressKeyPress = true;
}
1.我是否应该在其他地方(如 form_load..)调用事件处理程序来处理每个输入?
2. 如果我必须禁用修饰符输入 (SHIFT+1,SHIFT+2),我应该如何在此处编码?