就象outlook客户端显示邮件列表的那个listview的列表头一样?
如何实现?
大家帮帮忙啊

解决方案 »

  1.   

    很遗憾的告诉你,只有VB的。
    我这有一个VB实现的源代码,C#好像很难实现。
    [email protected]
      

  2.   

    listview的列头上轻松放图案
    放个listview,imagelist加两个图片。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ShellCtrls, ComCtrls, ImgList;Const
      LVM_FIRST = $1000;
      LVM_GETHEADER = (LVM_FIRST + 31);  HDI_IMAGE = $20;
      HDI_FORMAT = $4;  HDF_BITMAP_ON_RIGHT = $1000;
      HDF_IMAGE = $800 ;
      HDF_STRING = $4000;  HDM_FIRST = $1200;
      HDM_SETITEM = (HDM_FIRST + 4);  HDF_LEFT  = 0 ;
      HDF_RIGHT  = 1;
      HDF_CENTER = 2;type enumShow = (bShow = -1,    bHide = 0);type
       HDITEM = record
           mask    : Integer;
           cxy     : Integer;
           pszText  : String;
           hbm     : Integer;
           cchTextMax: Integer;
           fmt     : Integer;
           lParam  : Integer;
           iImage  : Integer;
           iOrder  : Integer;
        End;type
      TForm1 = class(TForm)
        ListView1: TListView;
        ImageList1: TImageList;
        procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure ShowHeaderIcon(colNo: Integer; imgIconNo: Integer; bShowImage : enumShow; list : TListView; lAlignment: Integer);
    var
        lHeader: Integer;
        HD      : HDITEM;
    begin
        lHeader := SendMessage(list.Handle, LVM_GETHEADER, 0, 0);
        With HD do
        begin
          mask := HDI_IMAGE Or HDI_FORMAT;
          If bShowImage = bShow Then
          begin
            fmt := HDF_STRING Or HDF_IMAGE Or HDF_BITMAP_ON_RIGHT;
            iImage := imgIconNo;
          end
          Else
            fmt := HDF_STRING;
          fmt := fmt Or lAlignment;
        End;
        SendMessage(lHeader, HDM_SETITEM, colNo, Integer(@HD));
    End;
    procedure TForm1.ListView1ColumnClick(Sender: TObject;
      Column: TListColumn);
    begin
      //Column.Caption := '10000';
      ShowHeaderIcon(Column.Index, Column.Index, bShow, Listview1, 0);
    end;end.
      

  3.   

    自己绘制的话,有没有代码,谢谢了
    也可以发我邮件
    [email protected]
      

  4.   

    //MSDN里有啊private void CreateMyListView()
    {
        // Create a new ListView control.
        ListView listView1 = new ListView();
        listView1.Bounds = new Rectangle(new Point(10,10), new Size(300,200));    // Set the view to show details.
        listView1.View = View.Details;
        // Allow the user to edit item text.
        listView1.LabelEdit = true;
        // Allow the user to rearrange columns.
        listView1.AllowColumnReorder = true;
        // Display check boxes.
        listView1.CheckBoxes = true;
        // Select the item and subitems when selection is made.
        listView1.FullRowSelect = true;
        // Display grid lines.
        listView1.GridLines = true;
        // Sort the items in the list in ascending order.
        listView1.Sorting = SortOrder.Ascending;
                    
        // Create three items and three sets of subitems for each item.
        ListViewItem item1 = new ListViewItem("item1",0);
        // Place a check  next to the item.
        item1.Checked = true;
        item1.SubItems.Add("1");
        item1.SubItems.Add("2");
        item1.SubItems.Add("3");
        ListViewItem item2 = new ListViewItem("item2",1);
        item2.SubItems.Add("4");
        item2.SubItems.Add("5");
        item2.SubItems.Add("6");
        ListViewItem item3 = new ListViewItem("item3",0);
        // Place a check  next to the item.
        item3.Checked = true;
        item3.SubItems.Add("7");
        item3.SubItems.Add("8");
        item3.SubItems.Add("9");    // Create columns for the items and subitems.
        listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
        listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);    //Add the items to the ListView.
                listView1.Items.AddRange(new ListViewItem[]{item1,item2,item3});    // Create two ImageList objects.
        ImageList imageListSmall = new ImageList();
        ImageList imageListLarge = new ImageList();    // Initialize the ImageList objects with bitmaps.
        imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage1.bmp"));
        imageListSmall.Images.Add(Bitmap.FromFile("C:\\MySmallImage2.bmp"));
        imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage1.bmp"));
        imageListLarge.Images.Add(Bitmap.FromFile("C:\\MyLargeImage2.bmp"));    //Assign the ImageList objects to the ListView.
        listView1.LargeImageList = imageListLarge;
        listView1.SmallImageList = imageListSmall;    // Add the ListView to the control collection.
        this.Controls.Add(listView1);
    }