每次尝试调整列和行的大小时,我都会遇到很大的问题。我正在尝试使用以下功能自动调整列和行的大小:
"2"
如果我在将dataGridView1.AutoResizeColumns();
dataGridView1.AutoResizeRows();
传递到datasource
之后放了这两行,则该行不起作用。我试图处理dataview
,并且认为它不起作用。我试图在DataSourceBindingComplete
中设置它,但它不起作用。然后
我试图做一个按钮
form.designer.cs
当我单击按钮时,一切运行正常!!!它调整了我所有列和行的大小。但我不要这个。我要自动。 你们能帮我一下,解释为什么会这样吗?没道理,在原始代码中它不起作用,但是在单独的按钮中它起作用。
答案 0 :(得分:0)
这对我有用。
在设计器中从“无”将AutoSizeColumnsMode和AutoSizeRowsMode值设置为AllCells。
答案 1 :(得分:0)
在设置来源之前,是否尝试过设置DataGridViewAutoSizeColumnsMode
?
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
dataGridView1.DataSource = SourceList; // Your Collection here
dataGridView1.AutoResizeRows();
}
答案 2 :(得分:0)
很抱歉,我花了一年多的时间才看到这篇文章...
这就是我要做的“自动”操作。
private void AutoResizeGrid()
{
if (dataGridView.Columns.Count < 1) return;
dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);
dataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCells);
}
private void MatrixDataGridView_ClientSizeChanged(object sender, EventArgs e)
{
if (!this.Visible) return;
AutoResizeGrid();
}
private void MatrixDataGridView_Scroll(object sender, ScrollEventArgs e)
{
if (!this.Visible) return;
AutoResizeGrid();
}
在添加此代码之前,我进入了设计器,并将“ AutoSizeColumnsMode”和“ AutoSizeRowsMode”都设置为“ DisplayedCells”。当网格首次接收数据时,这将导致自动化。上面的代码在发生调整大小或滚动事件时会导致自动化。