0

我想让我的行根据屏幕大小自动调整大小。当我为列执行此操作时,它确实有效:

grid.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;

但是当我想为行做​​同样的事情时。我没有填充选项。我只有喜欢

grid.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;

我怎样才能让我的行根据它的大小填满我的屏幕?

4

1 回答 1

0

您可以使用该AutoResizeRow方法。

根据 MSDN:

如果您想控制何时调整行大小,此方法很有用。每次方法调用只调整一次行高;如果该行的内容稍后发生变化,该行将不会自动调整。要调整所有行的大小,请使用 AutoResizeRows 方法。要将行设置为在其内容更改时自动调整大小,请使用 AutoSizeRowsMo​​de 属性。

这里还有一个 MSDN 示例。

您可能想要查看RowTemplate名为 的属性Height。您可以计算屏幕尺寸何时发生变化

编辑:

您可以将其放入调整大小事件中,例如Form_ResizeEnd. 关于网格如何处理大量行的 YMMV。

foreach (DataGridViewRow row in dataGridView1.Rows)
{
    row.Height = 22; //your calculation based on the screen height
}

我相信你可以使用System.Windows.Form.Screens类,特别Screens.PrimaryScreen.Bounds.Height是如果你想要主屏幕的高度。由您决定要保持什么样的尺寸。

于 2012-03-15T19:46:28.277 回答