怎么把ListBox中选中的多行一次行删除,但行删除是ListBox1.Items.Delete(ListBox1.ItemIndex),还有ListView呢?也怎么一次性删除选中的多行?

解决方案 »

  1.   

    ListBox1.DeleteSelected;
    ----------
    内部实现还是循环删除
    procedure TCustomListBox.DeleteSelected;
    var
      I: Integer;
    begin
      if MultiSelect then
      begin
        for I := Items.Count - 1 downto 0 do
          if Selected[I] then
            Items.Delete(I);
      end
      else
        if ItemIndex <> -1 then
          Items.Delete(ItemIndex);
    end;
      

  2.   

    同意楼上,
    另外你可以用checklistbox,它可以同时选择多项:
        for i := 0 to checklistbox.Count - 1 do
          if checklistbox.Checked[i] then
            checklistbox.Selected[i] := True
          else
            checklistbox.Selected[i] := False;
          checklistbox.DeleteSelected;
      

  3.   

    for i:= ListBox1.Items.Count-1 downto 0 do
        begin
         if ListBox1.Selected[i] then RzListBox1.Items.Delete(i);
        end;