我正在尝试使用列表视图组,但是当应用程序启动时,控件显示不正确。
只要我调整表单大小,它就会正确显示:
我不明白发生了什么。谁能解释一下?
答案 0 :(得分:4)
这是我重现的Delphi控件中的一个错误。我不确定导致这个错误的原因。我已将此作为QC#101104提交给Quality Central。
我通过将以下代码添加到表单的OnShow
事件中找到了一个简单的解决方法。
ListView1.Align := alNone;
ListView1.Align := alClient;
以下DFM文件足以证明问题:
object MyForm: TMyForm
Left = 0
Top = 0
ClientHeight = 300
ClientWidth = 635
object ListView1: TListView
Left = 200
Top = 96
Width = 250
Height = 150
Align = alClient
Columns = <
item
Caption = 'Column'
end>
Groups = <
item
Header = 'Group header'
GroupID = 0
end>
Items.ItemData = {
052A0000000100000000000000FFFFFFFFFFFFFFFF0000000000000000000000
000854006800650020006900740065006D00}
GroupView = True
ViewStyle = vsReport
end
end
事实证明,另一种解决问题的方法是移动DFM文件中的ViewStyle
条目,使其出现在Items
条目之前。因此问题的另一个解决方法是在运行时添加项目。事实上,这可能解释了为什么没有找到这个bug,因为我敢打赌绝大多数列表视图代码都会在运行时添加这些项目。