我有一个TListview
我想使用复选框来指示事件是否发生在列表中的项目。忽略点击TListView复选框
我可以读取并设置复选框状态,但我真正想要做的是禁用用户通过单击鼠标来更改状态的功能。
对于TCheckList
我可以checked
状态设置为使用OnClickCheck
同为一TListview
不起作用倒数。在这些时刻,我可以看到,该复选框已被OnMouseDown
目标,但不能从经历禁用点击..
procedure TMF.ListViewMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
MyHitTest : THitTests;
begin
MyHitTest := (Sender as TListView).GetHitTestInfoAt(X,Y);
if htOnStateIcon in MyHitTest then
(Sender as TListView).OnMouseDown := nil;
end;
建议?
是否将TListView的Enabled属性设置为false帮助? –
没有。我需要单独点击项目(正在使用'Rowselect'),只需复选框的状态在我的控制下 –
您正在与此系统打交道。它不想让你这样做。在你的位置上,我会寻找一个不涉及内置复选框的解决方案。 –