拉伸行以填充 DataGridView C# Winform 中的整个高度
本文关键字:高度 Winform 填充 DataGridView | 更新日期: 2023-09-27 18:36:56
我正在学习一些关于DataGridView
我有一个DataGridView
,我用DataSource
中的一些列和行填充
稍后我想输出一个位图,为此我希望我的列和行填满整个可用空间
与列,我只使用(它工作正常)
foreach (DataGridViewColumn col in DG_dataGridView.Columns)
{
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
我无法对行做同样的事情的问题
这是我的代码
//columns stretching
foreach (DataGridViewColumn col in DG_dataGridView.Columns)
{
col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
var printSet = printDocument1.DefaultPageSettings;
DG_dataGridView.Height = printSet.Bounds.Height;
int headerHeight = DG_dataGridView.ColumnHeadersHeight;
int height = DG_dataGridView.Size.Height - headerHeight;
int rowHeight = height / DG_dataGridView.RowCount; // -1;
//rows stretching
for (int i = 0; i < DG_dataGridView.Rows.Count; i++)
{
DG_dataGridView.Rows[i].Height = rowHeight;
}
Bitmap bm = new Bitmap(DG_dataGridView.Width, DG_dataGridView.Height);
DG_dataGridView.DrawToBitmap(bm, new Rectangle(0, 0, DG_dataGridView.Width, DG_dataGridView.Height));
bm.Save(System.IO.Directory.GetCurrentDirectory() + @"'latestBitTable.bmp");
我相信
这可能是由AutoSizeRowsMode
属性引起的。例如,当它设置为 AllCells
时,将自动调整行的大小以适合单元格内容(无论您如何在代码中定义或设置它)。
也许将其设置为 None
可能会解决您的问题。
dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;
在对所需行为进行编程时,以下文档可能对您有用: Windows 窗体数据网格视图控件中的大小调整选项