这刚开始发生在上周。我目前在Windows 10上使用VS 2012 Professional,在VB.NET中编码。在将listview传递给打印例程之前,我已成功使用Listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)来调整列的大小。我花了一个星期的时间离开项目,当我再次运行它时,最后一列开始占用listview宽度的剩余余额后调用方法,摆脱一些人称之为“丑陋”的最后一个空列。因此,由于宽度增加,它现在将最后一列推到另一页上。之前没有这样做过。在那一周,我确实安装了VS 2015社区版进行评估。 有没有其他人注意到这一点?如果是这样......解决方案?
答案 0 :(得分:0)
发现问题。
使用Listview.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)时,如果ListView的宽度小于总列宽,则只需将所有列的大小调整为页眉文本的宽度即可。 如果ListView的宽度比列的总宽度宽,那么最后一列将填充剩余的空间,这是我不希望在打印例程中反映的空间。我在打印例程中使用了这些列宽。问题是那些宽度随着ListView的宽度改变而改变,被传递到打印例程中。不可靠。
我的解决方法:在调用.AutoResizeColumns之后,我简单地将最后一列调整为“老式”方式。
另外。我觉得没有必要发布任何代码,因为这是一个讽刺性的,居高临下的评论,因为这是一个行为问题,而不是代码问题,并且只会使问题蒙上阴影。但感谢输入'Visual'Vincent。它真的加入了解决方案!