2011-03-24 55 views
2

我想要创建的是列表视图,它将自行调整大小以显示所有项目。通常我会使用AutoSize,但这不会在这里工作。任何其他选项我如何使ListView展开和缩小以适合所有?ListView自动调整大小以显示所有项目

+1

很难做到,尤其是View = Details,因为没有简单的方法可以找出列标题有多高。让用户根据自己的喜好调整表单的大小,确保列表视图像她一样调整大小。 – 2011-03-24 16:03:27

+0

请参阅Hans的答案http://stackoverflow.com/questions/27584650/resize-form-on-listview-height – OfficeAddinDev 2016-11-29 00:04:50

回答

2

您将不得不手动计算所需的高度,并将其设置为添加/删除项目。

检测项目添加或删除不直接支持 - 所以您需要创建自己的添加/删除项目调用客户端调用,或处理来自WndProc的LVN_INSERTIEM类型消息。

自动调整大小的控件通常使用起来比较麻烦 - 因为您必须跟踪最小/最大大小,为所有者留出空间,并且通常会为用户增加一个令人尴尬的可用性点。如果典型的解决方案(即滚动条)确实无法满足您的需求,只能做这样的事情。

0

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