DatagridView:删除未使用的空间?

我想知道是否可以在C#中删除DataGridView控件的未使用空间(灰色空间)。 我必须使DataGridView只显示白表。

alt text http://sofzh.miximages.com/c%23/datagridview-to-excel-1.gif

有什么建议 ?

有时(尤其是winforms)最好的方法是破解:

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

我从这篇文章中偷了它: 删除c#中datagrid中的空灰色空格

RowsHeaderVisible属性设置为false,您可以从设计器,类别Appearence或代码中执行此操作:

 dataGridView1.RowsHeaderVisible = false; 

为了删除左侧的指示符行,与灰色空间的其余部分一样,您可以尝试将前面提到的AutoSizeColumnsMode设置为Fill,但是由于缺少行,您仍然会使下半部分变灰。

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

我的意思是,如果它只是困扰你的颜色,将背景颜色设置为白色就可以了。

我找不到删除“未使用”或灰色(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的背景颜色,但可以根据需要进行修改。

如果有帮助,请投票。

我相信你想:

 myDataGrid.AutoSizeColumnsMode = Fill 

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

 dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; 

好吧,我努力寻找这个问题的答案,但最后如果你想模仿一个空的DataGridView那么长的答案是创建“ 白色 ”矩形对象并使用Graphics在覆盖的OnPaint方法上填充整个网格。

去设计师:

1)更改datagridview背景颜色与表单颜色相同

2)将datagridview“BorderStyle”设置为None