根据表格宽度调整DataGridView列的大小

6
我有一个Windows表单,在这个表单中,我有一个数据网格控件,其中有几列具有预定义的宽度。
当我使用最大化框或鼠标调整窗体大小时,数据网格会自动调整大小以适应表单。这是使用数据网格的锚定属性完成的。
现在我需要调整列的宽度,使所有列都适合调整大小的网格中,而不会出现水平滚动条。目前,我通过计算新网格宽度与旧网格宽度的比率,并按相同比例增加列宽来实现此目的。但是这样做的问题在于,当我最大化和最小化表单时,比率不准确,因此经过几次调整大小操作后,总列宽小于网格宽度,它开始在网格中显示空白区域。我在网格调整大小事件中执行此操作。
另一个需要注意的问题是,该网格中还有几个固定列,我不应该在网格调整大小时更改这些列的宽度。
我们该如何处理这个问题?是否有其他方法来解决这个调整大小的问题?
更新:我正在做不必要的工作,即计算比率以增加列的宽度,这是不必要的。
感谢@KMan。您建议使用fill属性,这很有效。它根据表单调整大小时网格的更改宽度来调整列宽。
1个回答

8

感谢您的回答。如果单元格的值不适合它,我不应该增加其宽度。当网格发生调整大小时,我只会调整列的大小。我认为您在第一点中提到的两个属性都与列的内部宽度与单元格值有关。 - JPReddy
你的第二点在我修改了网格的其他属性后起作用了。谢谢。 - JPReddy
请注意,列的“样式”属性,即答案中建议设置为Fill的属性,称为AutoSizeMode。 - ulatekh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接