如何实现点击按钮将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
相关产品推荐
相关产品推荐

