繁体   English   中英

ListView ColumnWidthChanged事件被“无故”触发

[英]ListView ColumnWidthChanged Event gets fired 'without reason'

我有一个listview和一个ColumnWidthChanged事件的事件处理程序,每次用户更改某些内容时,该事件处理程序都会在配置文件中存储新的列大小。

我为在内部更改列的每个过程创建了标志,以便仅对用户输入做出反应。

仍然会在程序启动时触发此事件(对于listview中的每一列一次)。

调用堆栈仅显示事件,“外部代码”和主“ program.cs”。

我只是找不到事件从何处触发。 有任何想法吗?

您将需要在将ColumnWidthChanged事件连接到表单的Shown事件中的地方放置代码。

发生的情况是ListView占用了表单上的物理空间,因此在构建表单时,它必须计算每列的大小。 因此,在将数据填充到其中时,这些列一旦拥有数据便会调整大小。 这就是为什么它在显示之前为每列触发一次。

至于为什么它不在DataGridView上触发,我认为对象的大小就是添加到表单中的大小。 它将等待计算每列的大小,直到将DataGridView添加到窗体之后。 这是有点不直观的行为,但这似乎就是您所看到的结果所发生的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM