数据网格视图/自动调整列和行的问题

每次尝试调整列和行的大小时,都会遇到很大的问题。我正在尝试使用以下函数自动调整列和行的大小:


dataGridView1.AutoResizeColumns();

dataGridView1.AutoResizeRows();

如果我在通过datasourceto后放置这两行dataview,则不起作用。我试图处理DataSourceBindingComplete,同上它不起作用。我试图将它设置在 中form.designer.cs,但它不起作用。然后我试着做一个按钮


private void button1_Click(object sender, EventArgs e)

{

     dataGridView1.AutoResizeColumns();

     dataGridView1.AutoResizeRows();

当我点击按钮时,一切正常!!!它会调整我所有的列和行的大小。但我不想要这个。我要自动 你们能帮我解释一下为什么会这样吗?没有意义,在原始代码中它不起作用,但在单独的按钮中它起作用。


富国沪深
浏览 207回答 3
3回答

慕运维8079593

这对我有用。在设计器中将 AutoSizeColumnsMode 和 AutoSizeRowsMode 值从 None 设置为 AllCells。

心有法竹

DataGridViewAutoSizeColumnsMode如果可能,您是否尝试过在设置源之前设置 ?private void button1_Click(object sender, EventArgs e){    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;    dataGridView1.DataSource = SourceList; // Your Collection here    dataGridView1.AutoResizeRows();} 

哈士奇WWW

很抱歉,我花了一年多的时间才看到这篇文章......这是我为使其“自动”所做的工作。private void AutoResizeGrid()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (dataGridView.Columns.Count < 1) return;&nbsp; &nbsp; &nbsp; &nbsp; dataGridView.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.DisplayedCells);&nbsp; &nbsp; &nbsp; &nbsp; dataGridView.AutoResizeRows(DataGridViewAutoSizeRowsMode.DisplayedCells);&nbsp; &nbsp; }&nbsp; &nbsp; private void MatrixDataGridView_ClientSizeChanged(object sender, EventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (!this.Visible) return;&nbsp; &nbsp; &nbsp; &nbsp; AutoResizeGrid();&nbsp; &nbsp; }&nbsp; &nbsp; private void MatrixDataGridView_Scroll(object sender, ScrollEventArgs e)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if (!this.Visible) return;&nbsp; &nbsp; &nbsp; &nbsp; AutoResizeGrid();&nbsp; &nbsp; }在添加此代码之前,我转到设计器并将“AutoSizeColumnsMode”和“AutoSizeRowsMode”都设置为“DisplayedCells”。当网格第一次接收数据时,这会导致自动化。当发生调整大小或滚动事件时,上面的代码会导致自动化。
打开App,查看更多内容
随时随地看视频慕课网APP