【发布时间】:2011-03-24 15:29:49
【问题描述】:
我想要创建的是一个列表视图,它将调整自身大小以显示所有项目。通常我会使用 AutoSize,但这在这里不起作用。还有其他选项如何使 ListView 扩大和缩小以适应所有人?
【问题讨论】:
-
很难做到,尤其是 View = Details,因为没有简单的方法可以确定列标题的高度。让用户根据自己的喜好调整表单大小,确保列表视图按照她的方式调整大小。
我想要创建的是一个列表视图,它将调整自身大小以显示所有项目。通常我会使用 AutoSize,但这在这里不起作用。还有其他选项如何使 ListView 扩大和缩小以适应所有人?
【问题讨论】:
您必须手动计算所需的高度并将其设置为添加/删除项目。
不直接支持检测项目添加或删除 - 因此您需要创建自己的添加/删除项目调用以供客户端调用,或处理来自 WndProc 的 LVN_INSERTIEM 类型消息。
使用自动调整大小控件通常比较棘手 - 因为您必须跟踪最小/最大尺寸,为所有者留出空间,并且通常会给用户增加一个尴尬的可用性点。仅当典型解决方案(即滚动条)确实无法满足您的需求时才执行此类操作。
【讨论】:
“ListView”控件不支持“AutoSize”属性。正如@JohnArien 提到的,您将不得不根据可用项目的数量以编程方式重新调整列表视图控件的大小。但请注意,就表单的视觉吸引力而言,这可能不是一个好主意。如果您在运行时更改大小,您的表单设计可能看起来很难看。更多这些类型的控件有望在滚动条的帮助下在给定大小内扩展其客户区域。我强烈建议您重新考虑这个选项。
【讨论】: