DataGridView列宽为百分比

Bre*_*ell 6 .net c# datagridview cells dynamic-columns

有没有办法给DataGridView中的每列提供总网格的百分比宽度?我目前使用的是固定宽度,但是希望为一列提供15%的宽度,另一列为25%的宽度,依此类推,以便填充表格的100%并使用网格调整大小.

Ase*_*tam 16

尝试使用DataGridViewColumn.FillWeight属性.基本上,您为每列指定权重,并根据这些权重重新调整列的大小.MSDN arcticle并不是那么好.请参阅以下文章以获得更好的解释 -

使用.NET 2.0中的DataGridView控件呈现数据 - 自动列大小调整


Syl*_*vio 5

尝试这个

    private void DgvGrd_SizeChanged(object sender, EventArgs e)
    {
        dgvGrd.Columns[0].Width = (int)(dgvGrd.Width * 0.2);
        dgvGrd.Columns[1].Width = (int)(dgvGrd.Width * 0.2);
        dgvGrd.Columns[2].Width = (int)(dgvGrd.Width * 0.4);
        dgvGrd.Columns[3].Width = (int)(dgvGrd.Width * 0.2);
        // also may be a good idea to set FILL for the last column
        // to accomodate the round up in conversions
        dgvGrd.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; 
    }
Run Code Online (Sandbox Code Playgroud)