【问题标题】:Resizing DataGridView columns based on the grid width根据网格宽度调整 DataGridView 列的大小
【发布时间】:2011-04-18 17:27:37
【问题描述】:

我有一个 Windows 窗体。在这种形式中,我有 datagrid 控件,它有几个具有预定义宽度的列。

当我使用最大化框或鼠标调整表单大小时,datagrid 会自动调整自身大小以适应表单。这是使用数据网格的锚属性完成的。

现在我还需要调整列的宽度,以便所有列都适合调整大小的网格,而不会出现水平滚动条。目前我正在通过计算新网格宽度与旧网格宽度的比率并以相同的比率增加列宽来做到这一点。但是这个问题是当我最大化和最小化表单时比例不准确,所以在几次调整大小操作后,总列宽度小于网格宽度,它开始在网格中显示空白空间。我在网格调整大小事件中这样做。

另一个问题是,这个网格中还存在几个固定列,我不应该在调整网格大小时更改这些列的宽度。

我们应该如何处理?有没有其他方法来处理这个调整大小的问题?

更新:我做了不必要的工作来计算比率以增加列的宽度,这是没有必要的。

感谢@KMan。您使用 fill 属性的建议奏效了。它会根据表格调整大小时网格更改的宽度来调整列宽。

【问题讨论】:

    标签: c# winforms datagrid resize


    【解决方案1】:

    怎么样:

    另外,结帐How to: Set the Sizing Modes of the Windows Forms DataGridView Control

    【讨论】:

    • 感谢您的回答。如果单元格的值不适合它,我不应该增加宽度。我应该只在网格发生调整大小时调整列的大小。我认为您在第一点中提到的两个属性都与列相对于单元格值的内部宽度有关。
    • 当我修改网格的其他属性时,您的第二点起作用了。谢谢。
    • 仅供参考,列上的“样式”属性,即答案说设置为填充的属性,称为 AutoSizeMode。
    猜你喜欢
    • 2014-01-06
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 2013-04-10
    相关资源
    最近更新 更多