私はいくつかの追加の実験を行い、これを実現する方法を見つけました。少しずさんですが、動作します。
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を数値にするために他の処理を行いますが、それはこれ以外の部分には関係ありません。