我现在正在处理这种情况。如您所知,WPF
您可以将控件设置为 Auto its size (Width or Height),因此当您这样做时,控件不会出现其垂直滚动条。
我希望在 Windows 窗体中的一个中具有相同的行为DataGridView
,该控件有很多行,我想知道该控件在没有垂直滚动条的情况下表达其实际大小。我该怎么做这个功能?
目前,它DataGridView
具有固定大小(600px)
我现在正在处理这种情况。如您所知,WPF
您可以将控件设置为 Auto its size (Width or Height),因此当您这样做时,控件不会出现其垂直滚动条。
我希望在 Windows 窗体中的一个中具有相同的行为DataGridView
,该控件有很多行,我想知道该控件在没有垂直滚动条的情况下表达其实际大小。我该怎么做这个功能?
目前,它DataGridView
具有固定大小(600px)
假设您的初始高度设置为滚动条不可见,添加这些事件处理程序将允许您在添加或删除行时缩放您的高度:
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 设计选择。你想用这个控件来完成什么?可能有一种更有效的方法来执行您在此处尝试执行的操作。
尝试设置它的Dock
属性。假设它的调用如下:
dataGridView1.Dock = DockStyle.Left;
显然,网格仍将显示滚动条,但其高度将适应其容器的高度。