首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从CheckListBox中删除选中项

从CheckListBox中删除选中项
EN

Stack Overflow用户
提问于 2021-12-15 15:02:08
回答 2查看 151关注 0票数 0

我想通过裁剪CheckListBox删除选中的项目,但是我只找到了如何删除所选的项,这不是我想要的。我希望你能帮我

EN

回答 2

Stack Overflow用户

发布于 2021-12-15 16:26:10

这段代码可以做你想做的事。请注意,每次删除项目时,CheckBoxList1.Items.Count都会减少一个。因此,我们在For -循环中使用downto而不是do

代码语言:javascript
复制
procedure TForm1.Button1Click(Sender: TObject);
var
  index: Integer;
begin
  CheckListBox1.Items.BeginUpdate;
  try
    for index := (CheckListBox1.Items.Count - 1) downto 0 do
      if (CheckListBox1.Checked[index]) then
        CheckListBox1.Items.Delete(index);
  finally
    CheckListBox1.Items.EndUpdate;
  end;
end;

CheckListBox1.Items.BeginUpdate;CheckListBox1.Items.EndUpdate;语句确保控件在处理其项时不会重新绘制其自身。

票数 3
EN

Stack Overflow用户

发布于 2021-12-15 15:59:47

如果我理解您需要什么,请尝试以下代码:

代码语言:javascript
复制
procedure TForm1.Button1Click(Sender: TObject);
var
  I: Integer;
  count : Integer;
begin
  i:= 0;
  count :=   CheckListBox1.Items.Count - 1;
  while i <= count  do
       if CheckListBox1.Checked[i] = true then
       begin
               CheckListBox1.Items.Delete(i);
               count := count - 1;
       end else i:=i+1;
end;

诅咒,有更好的解决办法,但它已准备好供你使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70365892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档