我想使dataGridView的大小适合列和行的总大小。关于总高度,我设法使它适合列的高度,如下所示:

const int datagridLines = 30;
s.Height = dataGridView2.Columns[0].HeaderCell.Size.Height;
for (byte i = 0; i < datagridLines; i++)
{
  dataGridView2.Rows.Add();
  s.Height += dataGridView2.Rows[i].Height;
}
dataGridView2.ClientSize = s;

我尝试了一些方法来适应宽度,但没有运气。有什么建议么?

谢谢。

最佳答案

这应该工作:

int height = 0;
foreach (DataGridViewRow row in dataGridView1.Rows) {
    height += row.Height;
}
height += dataGridView1.ColumnHeadersHeight;

int width = 0;
foreach (DataGridViewColumn col in dataGridView1.Columns) {
    width += col.Width;
}
width += dataGridView1.RowHeadersWidth;

dataGridView1.ClientSize = new Size(width + 2, height + 2);
widthheight值的+ 2是影响DataGridView内部元素宽度的模糊因素。我记得在某处看到代码可以使您获得此值而无需使用硬编码数字,但是现在找不到。

关于c# - 使dataGridView的大小适合行和列的总大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7412098/

10-15 01:43