我有一个窗体。在这种形式中,我的数据网格控件具有很少的具有预定义宽度的列。
当我使用最大化框或使用鼠标调整窗体大小时,datagrid会自动调整其大小以适合窗体。这是使用datagrid的anchor属性完成的。
现在我需要调整列的宽度,以便所有列都适合调整大小的网格而不会获得水平滚动条。目前我通过计算新网格宽度与旧网格宽度的比率并以相同比率增加列宽来实现此目的。但是这个问题是当我最大化和最小化形式时比率不准确,所以在几次调整大小动作之后,总列宽小于网格宽度并且它开始在网格中显示空白空间。我在网格调整大小事件中这样做。
另一个问题是,此网格中还存在几个固定列,我不应该在网格调整大小时更改这些列的宽度。
我们该如何处理?有没有其他方法来处理此调整大小问题?
更新:我在计算比率时做了不必要的工作来增加列的宽度,这是不必要的。
谢谢@KMan。您建议使用填充属性。它根据表单调整大小上的网格更改宽度来处理列宽调整大小。
答案 0 :(得分:7)
怎么样:
您将AutoSizeColumnsMode
属性设置为AllCellsExceptHeader
,这会根据值调整所有列。
而且,在上一栏中,您可以将样式设置为Fill
。
另外,结帐How to: Set the Sizing Modes of the Windows Forms DataGridView Control。