You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击按钮将TCheckListBox所有复选框置为未选中状态?

如何重置TCheckListBox为所有复选框未选中状态

方法1:循环遍历取消选中(通用所有Delphi版本)

这是最通用的实现方式,适配所有Delphi版本:

procedure TForm1.btnResetClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to CheckListBox1.Items.Count - 1 do
  begin
    CheckListBox1.Checked[i] := False;
  end;
end;

遍历TCheckListBox的每一项,将Checked属性设为False,即可批量取消所有复选框的选中状态。

方法2:使用内置方法(Delphi XE及以上版本)

如果你的Delphi版本是XE或更高,可以直接调用内置的ClearSelection方法,代码更简洁:

procedure TForm1.btnResetClick(Sender: TObject);
begin
  CheckListBox1.ClearSelection;
end;

这个方法底层同样实现了循环逻辑,但代码更直观,省去手动写循环的步骤。

额外说明:恢复自定义初始状态

如果你的TCheckListBox初始状态不是全未选中(比如默认有特定项选中),可以先在窗体初始化时保存初始状态,重置时精准恢复:

// 在窗体类的private区域声明变量
private
  FInitialChecked: array of Boolean;

// 窗体创建时保存初始选中状态
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  SetLength(FInitialChecked, CheckListBox1.Items.Count);
  for i := 0 to CheckListBox1.Items.Count - 1 do
  begin
    FInitialChecked[i] := CheckListBox1.Checked[i];
  end;
end;

// 重置按钮点击事件:恢复到初始状态
procedure TForm1.btnResetClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to CheckListBox1.Items.Count - 1 do
  begin
    CheckListBox1.Checked[i] := FInitialChecked[i];
  end;
end;

内容的提问来源于stack exchange,提问作者Onions Have Layers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 13:30:42