如何在Windows窗体的DataGridView中将高度设置为自动

时间:2013-01-12 18:12:01

标签: c# datagridview windows-forms-designer

我正在处理这种情况。如您所知,在WPF中,您可以将控件设置为自动大小(宽度或高度),因此当您执行此操作时,控件不会显示为垂直滚动条。< / p>

我想在Windows窗体中的一个DataGridView中使用相同的行为,这个控件有很多行,我想知道控件表达它的实际大小而没有垂直滚动条。我该怎么做这个功能?

enter image description here

到目前为止,DataGridView具有固定大小(600px)

2 个答案:

答案 0 :(得分:1)

假设您的初始高度已设置为滚动条不可见,添加这些事件处理程序将允许在添加或删除行时缩放高度:

private void dataGridView_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
    int height = 0;
    for (int i = e.RowIndex; i < (e.RowIndex + e.RowCount); i++)
        height += dataGridView.Rows[i].Height;

    dataGridView.Height += height;
}    

private void dataGridView_RowsRemoved(object sender, DataGridViewRowsAddedEventArgs e)
{
    int height = 0;
    for (int i = e.RowIndex; i < (e.RowIndex + e.RowCount); i++)
        height += dataGridView.Rows[i].Height;

    dataGridView.Height -= height;
}

作为附注,我建议在您的程序中使用此功能。自动调整列表框大小通常是一个糟糕的UI设计选择。你想用这个控件做什么?可能有一种更有效的方法可以做你想做的事情。

答案 1 :(得分:0)

尝试设置其Dock属性。假设它被调用如下:

dataGridView1.Dock = DockStyle.Left;

显然,网格仍将显示滚动条,但其高度将适应其容器。