DataGridView で AllowUserToAddRows を false に設定しています。それでも、方向矢印キーを使用して最後の行に移動すると、一番上の行が見えなくなり、新しい灰色の行が一番下に表示されます。
どうすればこれを防ぐことができますか? カーソルを上下左右にどれだけ動かしても、すべての行が表示されるようにします。
注: セルを水平方向にナビゲートしても問題はありません。そうすると、灰色の列は追加されません。行/垂直機能をそれと同じにしたい。
DataGridView で AllowUserToAddRows を false に設定しています。それでも、方向矢印キーを使用して最後の行に移動すると、一番上の行が見えなくなり、新しい灰色の行が一番下に表示されます。
どうすればこれを防ぐことができますか? カーソルを上下左右にどれだけ動かしても、すべての行が表示されるようにします。
注: セルを水平方向にナビゲートしても問題はありません。そうすると、灰色の列は追加されません。行/垂直機能をそれと同じにしたい。
したがって、これに対する1つのアプローチは、次のことです。
でDataGridView
、プロパティAllowUserToAddRows
とAllowUserToDeleteRows
をfalseに設定します。
また、AutoSizeRowsMode
なしに設定
DataGridView
次のようにサイズ変更を処理します。
private void dataGridView1_Resize(object sender, EventArgs e)
{
var rowHeight = (dataGridView1.Height - dataGridView1.ColumnHeadersHeight) / 10;
for (int i = 0; i < 10; ++i)
{
dataGridView1.Rows[i].Height = rowHeight;
}
}
私の例では、Form1_Load イベントはいくつかの行を追加し、DGV のサイズ変更を呼び出して最初はすべてが正しく見えるようにしますが、この別の方法を処理することもできます。何かのようなもの:
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 10; ++i)
{
dataGridView1.Rows.Add();
}
dataGridView1_Resize(this, EventArgs.Empty);
}