2017-02-10 69 views
0

我试图自动调整我的dgv的宽度和高度, 但是,它给我留下了宽大的空间,有些东西是不正确的。datagridview不正确自动调整

这是我使用的代码:

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

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

dgv.ClientSize = new Size(width + 2, height + 2); 

dgv with spaces in width - example 1

dgv with spaces in width - example 2

+0

究竟为什么想要来定义它的高度/宽度?​​通常会由完成自我控制 – Cataklysim

回答

0

看一看DataGridView.AutoSizeColumnsMode。您也可以使用DataGridView.AutoResizeColumns();强制调整大小。

您刚刚添加了所有列宽,但是谁说列宽是按照需要设置的?

+0

你建议不起作用怎么办 下面是截图后我想你的建议:。 http://image.prntscr.com/image/8b8101edc5c04065bfc4d1a808632e95.png – Kfir

+0

你能告诉你试过吗?也许你使用我的建议是错误的。你使用了什么值作为'AutoSizeColumnsMode'?你在哪里调用了'AutoResizeColumns()'? –

+0

我尝试了AutoSizeColumnsMode()的所有值,并在Form加载方法中使用了AutoResizeColumns()。 – Kfir

0

通常一个DataGridView自己定义属性。 他们得到的物业ColumnHeadersHeightSizeMode,你可以设置为AutoSize

With AutoSizeColumnsMode你甚至可以告诉DataGridView哪个对象需要调整大小。 (像ColumnHeaderAllCellsExceptHeaderAllCells

您可以在属性窗口中找到那些容易,无需代码。

+0

你的建议没有奏效。 下面是截图后我想你的建议: http://image.prntscr.com/image/8b8101edc5c04065bfc4d1a808632e95.png – Kfir

+0

究竟没有工作?尽管我可以看到,列和行不是太小,一切都可读。 – Cataklysim