如何垂直自动调整winforms datagridview控件的大小,以使其行始终可见

Dan*_*iel 7 .net c# datagridview winforms

我有一个DataGridView显示有限数量的行,从不超过5.这DataGridView是放在一个DataRepeater控件上,所以它通常在屏幕上显示多次.我想要实现的是所有网格都调整到其内容的大小,因此如果其中包含4或5个项目则不显示滚动条,或者如果只有1或2个项目则占用额外的垂直空间.

网格仅包含文本数据.它们是数据绑定控件,因此如果底层数据源发生更改,它们将需要调整大小(我猜这个DataBindingComplete事件是合适的).

我怎么能实现这个目标?计数行是最佳选择吗?提前致谢.

hmq*_*esy 18

由于您的控件是数据绑定的,我会将HeightDataGridView上的属性设置为DataBindingComplete事件中行的高度(加上一些边距)的总和:

private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    var height = 40;
    foreach (DataGridViewRow dr in dataGridView1.Rows) {
        height += dr.Height;
    }

    dataGridView1.Height = height;
}
Run Code Online (Sandbox Code Playgroud)