【发布时间】:2017-08-15 12:33:16
【问题描述】:
所以基本上当用户点击复选框时,我想将该项目添加到我的列表中,我尝试使用 OnChange 事件,但这对我不起作用,因为即使未点击复选框,它也会被触发。
我的代码简单明了
procedure LvUserChange(Sender: TObject; Item: TListItem;Change: TItemChange);
var
objUser : TUsers;
begin
if not assigned(objListOfChangedUsers) then
objListOfChangedUsers := TObjectList.Create;
objUser := Item.Data;
objListOfChangedUsers.Add(objUser);
end;
我希望仅在单击 ListView 中的复选框时触发此代码
【问题讨论】:
-
真的吗?为我工作。向我们展示您的代码并解释发生了什么不良行为。
-
不想要的行为是 Onchange 事件会触发,即使没有像我在问题中所说的那样单击复选框,还有其他我可以使用的事件或方法吗?
-
您似乎使用的是 OnChange 事件而不是 OnClick 事件。无论出于何种原因,每次更改组件时都会触发 OnChange 事件。
-
D2007 中是否存在
OnItemChecked事件? -
@Dsm 你是说我应该使用 OnClick 事件吗?即使我没有点击复选框,这不会触发吗?
标签: delphi delphi-2007 tlistview