数字のみを受け入れる必要があるグリッドビューに、テキストボックスタイプの列「数量」を設定します。コードは正常に機能しますが、2番目の入力からのみ機能します。ここではキーダウンのみを使用します。
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)を無効にする必要がある場合、ここでどのようにコーディングする必要がありますか?