var i:integer; begin for I := 0 to CheckListBox1.Count -1 do if CheckListBox1.Checked[i] // 左边的 Check框 是否 勾中 then showmessage(CheckListBox1.Items[i] ) // 右边的 文本 end;
允许用户将复选框设置为灰显状态,增加 一个cbGrayed显示状态
CheckListBox1.State[0]:= cbGrayed; CheckListBox1.State[1]:= cbChecked; CheckListBox1.State[2]:= cbUnchecked;
var i:integer; begin for I := 0 to CheckListBox1.Count -1 do if CheckListBox1.Selected[i] then //Selected表示 右边 蓝色 项 showmessage(CheckListBox1.Items[i] ) end;
//删除高亮选中的项目,(只管高亮选中就会被删除,和checked是否无关)
CheckListBox1.DeleteSelected;//删除选中项目,即使该给项目 没勾上也会被删除
//全选 高亮选中Selected
CheckListBox1.MultiSelect := True; CheckListBox1.SelectAll;
//让第n行被高亮选中
CheckListBox1.Selected[1]:=true;//第2行
//取消高亮选中
CheckListBox1.ClearSelection;
CheckListBox如何设置行高?
默认设置是 lbStandard 或者 lbOwnerDrawVariable 会忽略你的行高设置值的
改为lbOwnerDrawFixed 属性即可
全部Check https://docwiki.embarcadero.com/CodeExamples/Sydney/en/CheckListBoxCheckAll_(Delphi)
CheckListBox1.CheckAll(cbChecked, false, true);
//全选 Checked All procedure TForm1.Button11Click(Sender: TObject); var i :integer; begin for i := 0 to CheckListBox1.Items.Count - 1 do CheckListBox1.Checked[i] := True;//反选设置为False end;
全部unCheck
CheckListBox.CheckAll(cbUnchecked, true, false);
分几列显示
删除用
CheckListBox1.Items.Delete(Index);
上下移动交换用
CheckListBox1.Items.Move(CurrentIndex,NewIndex);
CheckListBox1.Items.Move(1,2);
//在项目中添加字符串(子项目的最后一位接着添加)
CheckListBox1.Items.Add(edit1.Text);
//在指定位置插入项
CheckListBox1.Items.Insert(0,'0Inseret');
//第3行的项目灰色不可用
CheckListBox1.ItemEnabled[2] := False;//True可用
//删除已勾选的中项目
procedure TForm1.Button5Click(Sender: TObject); var i : integer; begin for i := CheckListBox1.Items.Count-1 downto 0 do //从后面往前面删 if CheckListBox1.Checked[i] then CheckListBox1.Items.Delete(i); end;
//清空项目
CheckListBox1.Items.Clear;
//将CheckListBox1的全部添加到CheckListBox2的Items中
var i:Integer; begin CheckListBox2.Items.Clear; for i := 0 to CheckListBox1.Items.Count - 1 do CheckListBox2.Items.Add(CheckListBox1.Items[i]); end;