WinForm的宽度可以自动调整为DataGridView的总宽度吗?

时间:2012-05-14 16:18:44

标签: c# .net winforms datagridview

我有一个表单,其中一个DGV卡在表单的中心。

是否可以将表格设置为自动调整其宽度(达到最大限制)以容纳DGV - 取决于DGV中字段的总宽度。

我是否需要使用与this post类似的方法,或者使用控件属性是否可以“开箱即用”?

2 个答案:

答案 0 :(得分:1)

编辑:

public Form1()
{
    InitializeComponent();

    dataGridView1.AutoSize = true;
    dataGridView1.SizeChanged += new EventHandler(dataGridView1_SizeChanged);
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
}

void dataGridView1_SizeChanged(object sender, EventArgs e)
{
    Width = dataGridView1.Width + 10;
}

答案 1 :(得分:0)

您可以通过将'AutoSizeColumnsMode'和'AutoSizeRowsMo​​de'属性设置为'AllCells'来将DataGridView设置为适合其内容的大小:

dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

从这里,您可以通过使用控件的大小设置窗体的大小来调整窗体大小以适应DataGridView:

this.Height = dataGridView.Height;
this.Width = dataGridView.Width;

所以我想你可以通过处理'ColumnWidthChanged'事件(因为你只关心宽度)来检查内容是否被添加或移除到DataGridView,并在该处理程序中重新调整表单。