为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
富国沪深 2021-11-28 18:49:49
每次尝试调整列和行的大小时,都会遇到很大的问题。我正在尝试使用以下函数自动调整列和行的大小:dataGridView1.AutoResizeColumns();dataGridView1.AutoResizeRows();如果我在通过datasourceto后放置这两行dataview,则不起作用。我试图处理DataSourceBindingComplete,同上它不起作用。我试图将它设置在 中form.designer.cs,但它不起作用。然后我试着做一个按钮private void button1_Click(object sender, EventArgs e){     dataGridView1.AutoResizeColumns();     dataGridView1.AutoResizeRows();} 当我点击按钮时,一切正常!!!它会调整我所有的列和行的大小。但我不想要这个。我要自动 你们能帮我解释一下为什么会这样吗?没有意义,在原始代码中它不起作用,但在单独的按钮中它起作用。
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

这对我有用。

在设计器中将 AutoSizeColumnsMode 和 AutoSizeRowsMode 值从 None 设置为 AllCells。


查看完整回答
反对 回复 2021-11-28
?
心有法竹

TA贡献1866条经验 获得超5个赞

DataGridViewAutoSizeColumnsMode如果可能,您是否尝试过在设置源之前设置 ?


private void button1_Click(object sender, EventArgs e)

{

    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;

    dataGridView1.DataSource = SourceList; // Your Collection here

    dataGridView1.AutoResizeRows();


查看完整回答
反对 回复 2021-11-28
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

很抱歉,我花了一年多的时间才看到这篇文章......


这是我为使其“自动”所做的工作。


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”。当网格第一次接收数据时,这会导致自动化。当发生调整大小或滚动事件时,上面的代码会导致自动化。


查看完整回答
反对 回复 2021-11-28
  • 3 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信