もう少し実験を行い、これを実現する方法を見つけました。ちょっとうんざりですが、うまくいきます。
private int _keyValue;
private Boolean _checkKeyValue = false;
private void Grid1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridViewCell cell = Grid1.Rows[e.RowIndex].Cells[e.ColumnIndex];
if (_checkKeyValue)
{
_checkKeyValue = false;
if (value != -1)
{
cell.Value = _keyValue;
}
}
}
private void Grid1_KeyDown(object sender, KeyEventArgs e)
{
if (Grid1.SelectedCells.Count > 1)
{
_checkKeyValue = true;
_keyValue = (int)e.KeyValue;
Grid1.BeginEdit(false);
}
}
CellBeginEditイベントに登録することで、そこに値を入れることができます。私はそれを数値にするために_keyValueの他の処理を行いますが、それはこれの残りの部分には関係ありません。
これは有望だと思った。しかし、私はそれを試してみると、それは助けにはならなかったし、 "Handled"プロパティがすでに間違っていたように見えました。 –