如题,就是我要隐藏一个或者多个ID号在ListView中,类似于不可见,但是只要可以改变该列的宽度,那么就可以看到该隐藏列的信息!
    盼解!在先等待中.................

解决方案 »

  1.   

    不懂楼主的意思,到底是要隐藏ListItem还是Columns
      

  2.   

    ListView.Columns.BeginUpdate;
    ListView.Columns.Clear;
    Add_Columns('',20);
    ...
    ListView.Columns[0].MaxWidth := 0;
    ListView.Columns.EndUpdate;
      

  3.   

    没别的办法,这个问题问过很多次了,要么改成GIRD之类的显示
      

  4.   

    简单的不得了,只需要将你所有的column的width属性设置为0就可以了。
      

  5.   

    首先谢谢楼上各位的发言!to  xzhifei(星级饭桶·飞):
    我的目的就是要隐藏某列(Columns)!并且如果去拉伸该列(即列宽改变)也不可见!to zaiai2003(疾驰者):
    呵呵,没有那么简单,如果设为0,那么,该列仍可见,另外,我要求拉伸该列(即宽度改变)也不可见!盼解!高分相赠!
      

  6.   

    可以用下面的方法:
    ListView1.Columns[i].MinWidth := 0;
    ListView1.Columns[i].MaxWidth := 1;
    ListView1.Columns[i].Width := 0;
    还原显示:
    ListView1.Columns[i].MaxWidth := 设置宽度;
    ListView1.Columns[i].Width := 设置宽度;
      

  7.   

    to  xzhifei(星级饭桶·飞) :
    你的办法我也知道,可是效果不太理想,也就是说,假如有多个(五六个在一起的),那样的话,只要一拉伸,那就有点不好看了(特别的明显)还有没有更好的办法!
      

  8.   

    建议使用Virtual List技术就可以不显示任何一列的
    Ondata上处理就OK了
      

  9.   

    感觉onData能解决
    忘了怎么写关注一下
      

  10.   

    感觉onData能解决
    忘了怎么写关注一下
      

  11.   

    在Delphi7上可執行!type TPointRecord=^PointRecord;
         PointRecord = record
           Hide_Code: String;
           Hide_Name: String;
           {...}
         end;
    type
      TForm1 = class(TForm)
        ListView1: TListView;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure ListView1Click(Sender: TObject);
      private
        { Private 宣言 }
      public
        procedure Add_Columns(ColName: String; ColWidth: integer);
        procedure Write_ListItem(Line: integer);
        procedure Init_ListView;
        { Public 宣言 }
      end;var
      Form1: TForm1;implementation
    {$R *.dfm}//①放入数据時、分可視和不可視二部分
    procedure TForm1.Write_ListItem(Line: integer); //Insert a row
    var
      ListItem: TListItem;
      j: integer;
      pr: TPointRecord;
    begin
      ListItem := ListView1.Items.Add;         //可見部分
      ListItem.Caption := 'Caption' + IntToStr(Line);
      for j := 1 to 4 do begin
        ListItem.SubItems.Add('Sub:'+IntToStr(Line)+IntToStr(j));
      end;  new(pr);                                 //Hide部分
      pr.Hide_Code := 'Hide_Code: ' + IntToStr(Line);
      pr.Hide_Name := 'Hide_Name: ' + IntToStr(Line);
      ListItem.Data := pr;
    end;//②表示不可視部分
    procedure TForm1.ListView1Click(Sender: TObject);
    var
      pr: TPointRecord;
    begin
      pr := ListView1.Selected.Data;
      showMessage(pr.Hide_Code + '  ' + pr.Hide_Name);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var i: integer;
    begin
      ListView1.ViewStyle := vsReport;
      ListView1.RowSelect := true;
      Init_ListView;              //Header  ListView1.Items.BeginUpdate;
      for i := 1 to 100 do begin
        Write_ListItem(i);        //循環
      end;
      ListView1.Items.EndUpdate;
    end;procedure TForm1.Init_ListView;  //初始Header
    var i: integer;
    begin
      ListView1.Columns.BeginUpdate;
      ListView1.Columns.Clear;
      for i:=0 to 4 do begin
        Add_Columns('column'+IntToStr(i), 50);
      end;
      ListView1.Columns.EndUpdate;
    end;procedure TForm1.Add_Columns(ColName: String; ColWidth: integer);//Add a column
    var
      ListCol: TListColumn;
    begin
      ListCol := ListView1.Columns.Add;
      ListCol.Caption := ColName;
      ListCol.Width := ColWidth;
    end;
      

  12.   

    to ly_liuyang(Liu Yang):怎么使用Virtual List技术,望告知!本人比较菜!to ailibuli(愛理不理) :代码一大堆,有点看不懂!
      

  13.   

    楼主:俺的東東是一個例子呀。
       用到TListView和TButton二個控件、然後把内容COPY進去、
       執行一下、就会明白...
      

  14.   

    将不显示的字段,不如你说的id字段用addobject方法+到Listitem中去(有点类似TList那样的做法)