拉伸行以填充 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");

拉伸行以填充 DataGridView C# Winform 中的整个高度

我相信

这可能是由AutoSizeRowsMode属性引起的。例如,当它设置为 AllCells 时,将自动调整行的大小以适合单元格内容(无论您如何在代码中定义或设置它)。

也许将其设置为 None 可能会解决您的问题。

dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.None;

在对所需行为进行编程时,以下文档可能对您有用: Windows 窗体数据网格视图控件中的大小调整选项