我有一个表单,其中一个DGV卡在表单的中心。
是否可以将表格设置为自动调整其宽度(达到最大限制)以容纳DGV - 取决于DGV中字段的总宽度。
我是否需要使用与this post类似的方法,或者使用控件属性是否可以“开箱即用”?
答案 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'和'AutoSizeRowsMode'属性设置为'AllCells'来将DataGridView设置为适合其内容的大小:
dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
从这里,您可以通过使用控件的大小设置窗体的大小来调整窗体大小以适应DataGridView:
this.Height = dataGridView.Height;
this.Width = dataGridView.Width;
所以我想你可以通过处理'ColumnWidthChanged'事件(因为你只关心宽度)来检查内容是否被添加或移除到DataGridView,并在该处理程序中重新调整表单。