我正在尝试使用 ListView 组,结果发现当应用程序启动时控件显示不正确。
一旦我调整表单大小,它就会正确显示:
我不明白发生了什么。谁能解释一下?
最佳答案
这是我复制的 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
事实证明,解决问题的另一种方法是移动
ViewStyle
DFM 文件中的条目,使其出现在 Items
之前入口。因此,该问题的另一种解决方法是在运行时添加项目。事实上,这可能解释了为什么没有发现这个错误,因为我打赌绝大多数 ListView 代码在运行时添加项目。
关于delphi - 存在组时 ListView 控件绘制不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8160411/