首页 > 解决方案 > 如何将 DataGridView 设置为一列宽以填充全宽?

问题描述

我有一个 DataGridView,它有 3 列,名称为 AB 和 C,A 列和 C 列的宽度应该是固定的(如 200),但 B 列的宽度应该填充到完整的 DataGridView 宽度,它应该设置取决于屏幕大小。

我创建了一个在 DatagridView 上创建列的函数

 public void GenerateColumns(DataGridView dgv, string headerName, string headerText, int Minwidth, int FillWidth, DataGridViewColumnSortMode shortmode = DataGridViewColumnSortMode.NotSortable, bool Visible = true)
    {
        dgv.Columns.Add(headerName, headerText);
        dgv.Columns[headerName].MinimumWidth = Minwidth;

        dgv.Columns[headerName].Width = FillWidth;

        dgv.Columns[headerName].SortMode = shortmode;
        dgv.Columns[headerName].Visible = Visible;
    }

我在运行时有 crate 列

GenerateColumns(dgvLedger, DbConst.SRNo, "SRNo", 50, 50, DataGridViewColumnSortMode.Automatic, false);
        GenerateColumns(dgvLedger, DbConst.FYearID, "FYearID", 50, 50, DataGridViewColumnSortMode.Automatic, false);
        GenerateColumns(dgvLedger, DbConst.Date, "Date", 50, 100);
        GenerateColumns(dgvLedger, DbConst.Particulars, "Particulars", 50, 500);
        GenerateColumns(dgvLedger, DbConst.VchType, "VchType", 50, 120);
        GenerateColumns(dgvLedger, DbConst.VchNo, "VchNo", 50, 80);
        GenerateColumns(dgvLedger, DbConst.AmountDebit, "Debit", 50, 150);
        GenerateColumns(dgvLedger, DbConst.AmountCredit, "Credit", 50, 150);
        GenerateColumns(dgvLedger, DbConst.DiscriptionApplicable, DbConst.Discription, 50, 50, DataGridViewColumnSortMode.NotSortable, false);

作为评论,我已将 AutosizeMode 设置为 Particulats Column 但它不起作用

dgvLedger.Columns[DbConst.Particulars].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;

该视图的 DatagridView 的图像

标签: c#winforms

解决方案


在“B 列”的属性中,只需将 AutoSizeMode(Layout section) 设置为 Fill。


推荐阅读