我想知道是否有可能在C#中删除DataGridView控件的未使用空间(灰色空间)。我必须使DataGridView仅显示白表。DatagridView:删除未使用的空间?
alt text http://www.timvw.be/wp-content/images/datagridview-to-excel-1.gif
有什么建议吗?
我想知道是否有可能在C#中删除DataGridView控件的未使用空间(灰色空间)。我必须使DataGridView仅显示白表。DatagridView:删除未使用的空间?
alt text http://www.timvw.be/wp-content/images/datagridview-to-excel-1.gif
有什么建议吗?
我相信你想:
myDataGrid.AutoSizeColumnsMode = Fill
编辑:这只是调整大小的列。我不确定除了调整网格高度以外,如何摆脱行灰色空间。
这不会摆脱所有的灰色空间,只是空间列的权利。如果您需要这种行为,您必须为Resize事件编写一个处理程序来调整可见行的大小以填充网格。 – 2010-01-29 15:11:18
在编辑时,假设AutoSizeRowsMode有填充值,则不正确。 – 2010-01-29 15:13:01
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewautosizerowsmode.aspx – 2010-01-29 15:32:06
设置RowsHeaderVisible
属性设置为false,您可以做到这一点从设计师,在Appearence
类别,或从代码:
dataGridView1.RowsHeaderVisible = false;
为了去除左侧的指示灯列,如用于在剩下的灰色空间中,您可以尝试将上述AutoSizeColumnsMode
设置为填充,但您仍然会将下半部分从缺少行变成灰色。
您可以调整网格大小以适应您的单元格,而不是调整单元格大小以填充网格。这是否是一种可接受的方法取决于你的意图。
我的意思是,如果它只是困扰你的颜色,将背景颜色设置为白色将会起到诀窍的作用。
那么......没有完美的解决方案? – 2010-11-26 06:39:34
谢谢,你救了我的一天..! – User5590 2014-12-17 11:24:00
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
错误:无法将类型'System.Windows.Forms.DataGridViewAutoSizeColumnMode'隐式转换为'System.Windows.Forms.DataGridViewAutoSizeColumnsMode'。一个明确的转换存在(你是否缺少一个强制转换?) – 2010-11-26 06:30:31
你可以在你的System.Windows.Forms.DataGridViewAutoSizeColumnMode中的Column后添加's',并且问题将被解决:) – Tina 2012-07-31 10:42:38
我发现没有简单的方法来删除“未使用”或灰色(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的背景色,但可以根据需要进行修改。
如果它对您有帮助,请投票支持。
Upvoted,它帮助...这是最近我得到了迄今 – Jack 2015-05-28 06:23:31
有时(特别是与WinForms的)最好的办法是破解:
dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
这工作,但你仍然有边界。任何想法如何删除? – 2014-11-29 11:50:33
嗯,我辛苦过,但在找到这个答案如果你想模仿一个空的DataGridView结束那么长的答案是创建“白”矩形对象,并用图形来填补一个重写OnPaint方法全格。
好问题......但没有满意的答案! :( – 2010-11-26 06:38:00
看看这里我的答案。 – Tina 2012-08-01 08:32:51
图片链接断开。 – 2017-06-06 17:48:29