ListView自动resize以显示所有项目

我想要创建的是一个列表视图,它将调整自身大小以显示所有项目。 通常我会使用AutoSize,但这不适用于此。 任何其他选项如何使ListView扩展和缩小以适应所有?

您必须手动计算所需的高度,并在添加/删除项目时将其设置。

不直接支持检测项目添加或删除 – 因此您需要为客户端调用创建自己的“添加/删除项目”调用,或者从WndProc处理LVN_INSERTIEM类型的消息。

自动resize的控件通常比较复杂 – 因为您必须跟踪最小/最大尺寸,允许所有者留出空间,并且通常会为用户添加一个尴尬的可用性点。 如果典型的解决方案(即滚动条)确实无法满足您的需求,那么只能执行此类操作。

“ListView”控件不支持“AutoSize”属性。 正如@JohnArien所提到的,您必须根据可用项目的数量以编程方式重新调整列表视图控件的大小。 但请注意,就表格的视觉吸引力而言,这可能不是一个好主意。 如果在运行时更改大小,则表单设计可能看起来很难看。 对于这些类型的控件,预计会在滚动条的帮助下扩展其给定大小的客户区域。 我强烈建议你重新考虑这个选择。