当前位置:编程学习 > C#/ASP.NET >>

C# datagridview 怎么自动调整行高

现datagridview是固定的行和列8X12,我把列设置了AutoSizeColumnMode 设为fill

我把行也想设置成类似AutoSizeColumnMode 为Fill效果,因为行是固定的,也不需要添加新行。

我也把DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
 ,但这样只是根据单元格的内容来确定行高,

不能随窗体的最大化而自动缩放表格(平均各列、行),也就是说把8行填充整个表格的高度,不会有灰色的区域显示.即便是每个单元格都没有内容.

我不知道我这样表达,大家理解我意思没有?希望大家给点意见!谢谢!

--------------------编程问答-------------------- 用css来控制呢? --------------------编程问答-------------------- 我是winform开发,请问怎样用css控制 --------------------编程问答-------------------- 在窗口SizeChanged事件中重新计算行高。 --------------------编程问答-------------------- AllowUserToResizeColumns=true  用户可以调整列宽

但是当DataGridView1.AutoSizeColumnsMode 设置为自动调整时,AllowUserToResizeColumns属性无效

1) 设定行高和列宽自动调整
// 设定包括Header和所有单元格的列宽自动调整
DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
// 设定包括Header和所有单元格的行高自动调整
DataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
AutoSizeColumnsMode 属性的设定值枚举请参照 msdn 的 DataGridViewAutoSizeRowsMode 说明。
2)指定列或行自动调整
// 第一列自动调整
DataGridView1.Columns[0].AutoSizeMode =  DataGridViewAutoSizeColumnMode.DisplayedCells;
AutoSizeMode 设定为 NotSet  时, 默认继承的是  DataGridView.AutoSizeColumnsMode 属性。
3) 设定列头的高度和行头的宽度自动调整
 // 设定列头的宽度可以自由调整
 DataGridView1.ColumnHeadersHeightSizeMode =   DataGridViewColumnHeadersHeightSizeMode.AutoSize;
// 设定行头的宽度可以自由调整
DataGridView1.RowHeadersWidthSizeMode =  DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders;
 
4) 随时自动调整
 a, 临时的,让列宽自动调整,这和指定AutoSizeColumnsMode属性一样。
// 让 DataGridView1 的所有列宽自动调整一下。
DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
// 让 DataGridView1 的第一列的列宽自动调整一下。
DataGridView1.AutoResizeColumn(0, DataGridViewAutoSizeColumnMode.AllCells);
上面调用的 AutoResizeColumns 和 AutoResizeColumn 当指定的是DataGridViewAutoSizeColumnMode.AllCells 的时候, 参数可以省略。即: DataGridView1.AutoResizeColumn(0) 和 DataGridView1.AutoResizeColumns()
b,临时的,让行高自动调整
// 让 DataGridView1 的所有行高自动调整一下。
 DataGridView1.AutoResizeRows(DataGridViewAutoSizeRowsMode.AllCells);
//让 DataGridView1 的第一行的行高自动调整一下。
DataGridView1.AutoResizeRow(0, DataGridViewAutoSizeRowMode.AllCells);
上面调用的 AutoResizeRows 和 AutoResizeRow 当指定的是DataGridViewAutoSizeRowMode.AllCells 的时候, 参数可以省略。即:DataGridView1.AutoResizeRow (0) 和 DataGridView1.AutoResizeRows()

c,临时的,让行头和列头自动调整
 // 列头高度自动调整
DataGridView1.AutoResizeColumnHeadersHeight();
// 行头宽度自动调整
DataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
关于性能: 通过 AutoSizeColumnsMode 或者 AutoSizeRowsMode 属性所指定的单元格进行自动调整时,如果调整次数过于多那么将可能导致性能下降,尤其是在行和列数比较多的情况下。在这时用 DisplayedCells 代替 AllCells 能减少非所见的单元格的调整,从而提高性能。

引自:http://blog.csdn.net/alisa525/article/details/7446065
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,