是否可以在OnClickCheck中作一下处理:procedure TForm1.chklst1ClickCheck(Sender: TObject);var i: Integer;begin for i := 0 to chklst1.Items.Count - 1 do begin if chklst1.Checked then begin if (Integer(chklst1.Items.Objects) = 1) then begin chklst1.Checked := False; chklst1.Items.Objects := TObject(0); end else chklst1.Items.Objects := TObject(1); end; end;end;主要是借用了Items.objects来存放原来是否选中的状态,若有变动就是本次变更的,其余的均置为非选中