CheckListChange多选互斥事件的运用

在实际业务中,存在多选框,当选择‘无’的时候其他的框是不能选择的,当选择其他的时候‘无’的选项要自动清除,方法如下:

procedure TForm.CheckListBoxChange(Sender: TObject;
  Index: Integer; NewState: TCheckBoxState);
  var i:Integer;
begin
  inherited;
  if Index = 0  then
  begin
    if TCheckList(Sender).ItemChecked[Index] then
    begin
      for i := 1 to TCheckList(Sender).Count -1 do
      begin
        TCheckList(Sender).ItemChecked[i] := False;
      end;
    end;
  end
  else
  begin
    if TCheckList(Sender).ItemChecked[0] then
      TCheckList(Sender).ItemChecked[0] := False;
  end;
end;

 这样就可以实现互斥的效果。

你可能感兴趣的:(change)