2010-01-29 52 views

回答

2

我相信你想:

myDataGrid.AutoSizeColumnsMode = Fill 

编辑:这只是调整大小的列。我不确定除了调整网格高度以外,如何摆脱行灰色空间。

+0

这不会摆脱所有的灰色空间,只是空间列的权利。如果您需要这种行为,您必须为Resize事件编写一个处理程序来调整可见行的大小以填充网格。 – 2010-01-29 15:11:18

+0

在编辑时,假设AutoSizeRowsMo​​de有填充值,则不正确。 – 2010-01-29 15:13:01

+0

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewautosizerowsmode.aspx – 2010-01-29 15:32:06

5

设置RowsHeaderVisible属性设置为false,您可以做到这一点从设计师,在Appearence类别,或从代码:

dataGridView1.RowsHeaderVisible = false; 

为了去除左侧的指示灯列,如用于在剩下的灰色空间中,您可以尝试将上述AutoSizeColumnsMode设置为填充,但您仍然会将下半部分从缺少行变成灰色。

您可以调整网格大小以适应您的单元格,而不是调整单元格大小以填充网格。这是否是一种可接受的方法取决于你的意图。

我的意思是,如果它只是困扰你的颜色,将背景颜色设置为白色将会起到诀窍的作用。

+1

那么......没有完美的解决方案? – 2010-11-26 06:39:34

+0

谢谢,你救了我的一天..! – User5590 2014-12-17 11:24:00

1
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 
+0

错误:无法将类型'System.Windows.Forms.DataGridViewAutoSizeColumnMode'隐式转换为'System.Windows.Forms.DataGridViewAutoSizeColumnsMode'。一个明确的转换存在(你是否缺少一个强制转换?) – 2010-11-26 06:30:31

+0

你可以在你的System.Windows.Forms.DataGridViewAutoSizeColumnMode中的Column后添加's',并且问题将被解决:) – Tina 2012-07-31 10:42:38

4

我发现没有简单的方法来删除“未使用”或灰色(BackgroundColor)空间。但是,对我来说一个有效的解决方案是隐藏DataGridView的边框并将其背景颜色更改为周围控件的背景。实质上,这种看法是没有更多的未使用空间。

这里是伪代码片段:

TableGridView = DataGridView() 
TableGridView.Width = 0 
TableGridView.Height = 0 
TableGridView.AutoSize = true 
TableGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells 
TableGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells 
TableGridView.BackgroundColor = SystemColors.ControlLightLight 
TableGridView.BorderStyle = BorderStyle.None 

我读的地方,将AutoSize设置不适用,但是,它确实改变的事情对我来说。此示例建议周围的控件具有SystemColors.ControlLightLight的背景色,但可以根据需要进行修改。

如果它对您有帮助,请投票支持。

+0

Upvoted,它帮助...这是最近我得到了迄今 – Jack 2015-05-28 06:23:31

5

有时(特别是与WinForms的)最好的办法是破解:

dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control; 

我偷了这个职位: removing the empty gray space in datagrid in c#

+0

这工作,但你仍然有边界。任何想法如何删除? – 2014-11-29 11:50:33

0

嗯,我辛苦过,但在找到这个答案如果你想模仿一个空的DataGridView结束那么长的答案是创建“”矩形对象,并用图形来填补一个重写OnPaint方法全格。