怎样在ChecklistBox,里动态唯一选择?初始选择第一列,后面选择的自动把前面选择的置为无效?

解决方案 »

  1.   

    dephi5没有让ChecklistBox只选一个的属性选项
      

  2.   

    异或一下状态不就是了嘛。把selected的状态搞成一个Integer的状态位。每次用位运算异或来判断每一位的值。过一会儿写点代码给你。
      

  3.   

    RadioGroup.OnCheckClick
    with CheckBox do
    if Checked[ItemIndex] then
    for i:=0 to Items.Count-1 do
      if i <> ItemIndex then
        Checked[i] := false;
      

  4.   

    selected状态不太想用select,因为如果是代码控制就有问题了。不一定select之后才check。procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
    var
      i: integer;
      iNewStatus: Integer;
    begin
      iNewStatus := 0;
      for i := 0 to CheckListBox1.Items.Count - 1 do
        if CheckListBox1.Selected[i] then
          iNewStatus := i;  CheckListBox1.Checked[iNewStatus] := True;
      for i := 0 to CheckListBox1.Items.Count - 1 do
        if i <> iNewStatus then
          CheckListBox1.Checked[i] := False;
    end;
      

  5.   

    windindance(风舞轻扬) 老大。如果我在button的Onclick事件写下这个。比如说checklistbox有五个,选中最后一个。CheckListBox1.Checked[4] := true;这个方法是否合适?
      

  6.   

    可以搞个类似方法,可能解决外部选择。procedure DoCheck(List: TCheckListBox; Index: integer);
    var
      i: integer;
    begin
      with List do
      begin
        Checked[Index] := True;
        for i := 0 to Items.Count - 1 do
          if i <> Index then
            Checked[i] := False;
      end;
    end;OnCheckClick可以这么写。DoCheck(CheckListBox1, CheckListBox1.ItemIndex);其实就是一个异或操作……
      

  7.   

    不用CheckListBox,直接用CheckBox不就是一个选择了吗?