我想知道是否可以在C#中删除DataGridView控件的未使用空间(灰色空间)。我必须使DataGridView只显示白表。
alt text http://www.timvw.be/wp-content/images/datagridview-to-excel-1.gif
有什么建议吗?
答案 0 :(得分:7)
有时候(尤其是winforms)最好的方法是破解:
dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
我从这篇文章中偷了它: removing the empty gray space in datagrid in c#
答案 1 :(得分:5)
将RowsHeaderVisible
属性设置为false,您可以从设计器,类别Appearence
或代码中执行此操作:
dataGridView1.RowsHeaderVisible = false;
为了删除左侧的指示符行,与灰色空间的其余部分一样,您可以尝试将前面提到的AutoSizeColumnsMode
设置为Fill,但是仍然会使下半部分因缺少而变灰行。
您可以调整网格大小以适应细胞周围,而不是调整细胞大小以填充网格。这是否是一种可接受的方法取决于你的意图。
我的意思是,如果它只是困扰你的颜色,将背景颜色设置为白色就可以了。
答案 2 :(得分: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,但可以根据需要进行修改。
如果有帮助,请投票。
答案 3 :(得分:2)
我相信你想要:
myDataGrid.AutoSizeColumnsMode = Fill
编辑:这只是调整列的大小。除了调整网格的高度之外,我不确定如何摆脱行灰色空间。
答案 4 :(得分:1)
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
答案 5 :(得分:0)
好吧,我努力找到这个问题的答案,但最后如果你想模仿一个空的DataGridView,那么很长的答案是创建“白色”Rectangle对象并使用Graphics来填充覆盖OnPaint方法的整个网格。
答案 6 :(得分:0)
去设计师:
1)更改与表格颜色相同的datagridview背景颜色
2)将datagridview“ BorderStyle”设置为“无”
答案 7 :(得分:-2)
我将这段代码用于其中,如果您不添加按钮列或图像,该代码将对我有用,我是从网站上获取的,但我不记得从哪里来了:
For Each row As DataGridViewRow In DataGridView1.Rows
If datagrid_limits > newHeight Then
newHeight =newHeight + 40
Else
Exit For
End If
Next
DataGridView1.Height = newHeight