免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
ListView的使用
ListView的使用
2006年10月30日 星期一 17:06
ListView控件是一個(gè)比較復(fù)雜的控件。它可以在它的標(biāo)準(zhǔn)列表框中進(jìn)行各種查看操作(如大圖標(biāo),小圖標(biāo),詳細(xì)信息等)
        下面做一個(gè)簡單的例子。
        創(chuàng)建一個(gè)新窗體form1
        在上面添加幾個(gè)控件如下:

再添加兩個(gè)imagelist控件,取名為smallIL與largeIL,把largeIL的imagesize設(shè)為32,32,并為它的images添加兩個(gè)ICON,一個(gè)為文件夾圖標(biāo),一個(gè)為文件圖標(biāo)。也為smallIL添加兩個(gè)這樣的圖標(biāo)。
然后設(shè)置listview的smallimagelist為smallIL,largeimagelist為largeIL,view為details

下面說明一下listview顯示為details(詳細(xì)信息)時(shí)的幾個(gè)要點(diǎn):
listview的選項(xiàng)
       列表視圖中的主選項(xiàng)是一個(gè)ListViewItem類的實(shí)例,然后這個(gè)選項(xiàng)又有一個(gè)子選項(xiàng)SubItems,如果ListView在details模式下,子選項(xiàng)就會(huì)顯示出來。子選項(xiàng)和主選項(xiàng)的區(qū)別是,主選項(xiàng)可以有圖標(biāo),子選項(xiàng)沒有。
listview的列標(biāo)題
        columns,也相當(dāng)于列名。要顯示列表題,就要把ColumnsHeader的實(shí)例添加到listview的columns中,在listview處于details模式下 ,ColumnsHeader為listview提供一個(gè)標(biāo)題。


現(xiàn)在可以開始編定代碼了。
    我們首先寫一個(gè)方法,為listview創(chuàng)建標(biāo)題
    
   private void createHeader()//為listview添加列名
  {
   ColumnHeader ch=new ColumnHeader();
   ch.Text="文件名";
   this.listView1.Columns.Add(ch);

   ch=new ColumnHeader();
   ch.Text="大小";
   this.listView1.Columns.Add(ch);

   ch=new ColumnHeader();
   ch.Text="修改日期";
   this.listView1.Columns.Add(ch);

  }
然后再寫一個(gè)方法,為listview添加選項(xiàng)
        private void createitem(string root)
  {
   ListViewItem lvi;
   ListViewItem.ListViewSubItem lvsi;
   System.IO.DirectoryInfo dir=new System.IO.DirectoryInfo(root);
   System.IO.DirectoryInfo[] dirs=dir.GetDirectories();
   System.IO.FileInfo[] files=dir.GetFiles();

   listView1.Clear();//注意這個(gè)函數(shù)是把listview里的所有選項(xiàng)與所列名都刪除

   listView1.BeginUpdate();

   foreach(System.IO.DirectoryInfo di in dirs)
   {
    lvi=new ListViewItem();
    lvi.Text=di.Name;
    lvi.Tag=di.FullName;
    lvi.ImageIndex=0;

    lvsi=new System.Windows.Forms.ListViewItem.ListViewSubItem();
    lvsi.Text="";
    lvi.SubItems.Add(lvsi);

    lvsi=new System.Windows.Forms.ListViewItem.ListViewSubItem();
    lvsi.Text=di.LastAccessTime.ToString();
    lvi.SubItems.Add(lvsi);

    this.listView1.Items.Add(lvi);
   }
   foreach(System.IO.FileInfo fi in files)//把文件信息添加到listview的選項(xiàng)中
   {
    lvi=new ListViewItem();
    lvi.Text=fi.Name;
    lvi.ImageIndex=1;
    lvi.Tag=fi.FullName;

    lvsi=new System.Windows.Forms.ListViewItem.ListViewSubItem();
    lvsi.Text=fi.Length.ToString();
    lvi.SubItems.Add(lvsi);

    lvsi=new System.Windows.Forms.ListViewItem.ListViewSubItem();
    lvsi.Text=fi.LastAccessTime.ToString();

    lvi.SubItems.Add(lvsi);

    this.listView1.Items.Add(lvi);

   }
    this.listView1.endupdate();
}

然后在Form1的構(gòu)造函數(shù)里添加:
public Form1()
{
    createitem(@“c:\“);//注意這兩個(gè)函數(shù)的次序不能顛倒,因?yàn)閏reateitem里有一句命令listView1.clear()
                                    把所有的列名也都刪除了,如果createheader在前,listview就沒有列名了。
    createheader();
}
現(xiàn)在運(yùn)行程序,就可以看到listview里面列出了所有c:\下的文件夾與文件信息,

下面再添加四個(gè) 單選按鈕的事件處理程序
 private void rdosmall_CheckedChanged(object sender, System.EventArgs e)
  {
   if(this.rdosmall.Checked==true)
   {
    this.listView1.View=View.SmallIcon;
   }
  }
private void rdolarge_CheckedChanged(object sender, System.EventArgs e)
  {
   if(this.rdolarge.Checked==true)
   {
    this.listView1.View=View.LargeIcon;
   }
  }

  private void rdodetails_CheckedChanged(object sender, System.EventArgs e)
  {
   if(this.rdodetails.Checked==true)
   {
    this.listView1.View=View.Details;
   }
  }

  private void rdolist_CheckedChanged(object sender, System.EventArgs e)
  {
   if(this.rdolist.Checked==true)
   {
    this.listView1.View=View.List;
   }
  }

現(xiàn)在運(yùn)行程序,點(diǎn)擊單選按鈕,就可以變換listview的顯示模式。

下面再為listview的itemActivate事件添加處理程序,目 的是當(dāng)我們選擇listview中的選項(xiàng)時(shí),如果它是文件夾就打開這個(gè)文件夾,顯示里面的信息,如果它是文件,就打開這個(gè)文件。
不過我們還應(yīng)該注意一點(diǎn),就是當(dāng)我們打開一個(gè)新文件夾時(shí),還會(huì)用到后退功能。所以,我們應(yīng)該用一個(gè)字符串記錄下前一個(gè)文件夾路徑,用于后退到這個(gè)前一個(gè)文件夾

下面,我們?cè)陬怓orm1中添加個(gè)成員
private System.Collections.Specialized.StringCollection colstr=new System.Collections.Specialized.StringCollection();

然后添加itemActivate的處理程序
首先在Form1的構(gòu)造函數(shù)里添加
this.listView1.ItemActivate+=new EventHandler(listView1_ItemActivate);

然后添加函數(shù)
private void listView1_ItemActivate(object sender,System.EventArgs e)
  {
   ListView lv=(ListView)sender;
   string filename=lv.SelectedItems[0].Tag.ToString();

   if(lv.SelectedItems[0].ImageIndex==0)//如果是文件夾,就打開它
   {
    createitem(filename);
    createHeader();
    colstr.Add(filename);//把打開的方件夾的路徑記錄下來,
                                     這里是因?yàn)槲覀儸F(xiàn)在的路徑是已知的,不用記錄。


   }
   else//如果是文件,就執(zhí)行它
   {
    System.Diagnostics.Process.Start(filename);
   }
  }

下面,再添加BACK按鈕的CLICK事件處理程序,實(shí)現(xiàn)后退功能

  private void btnback_Click(object sender, System.EventArgs e)
  {
   if(colstr.Count>1)
   {
    createitem(colstr[colstr.Count-2]);
    colstr.RemoveAt(colstr.Count-1);
    createHeader();
   }
   else if(colstr.Count==1)
   {
    createitem(@"c:\");
    createHeader();
    colstr.Clear();
   }
  }

好了,現(xiàn)在所有的功能都實(shí)現(xiàn)了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# ListView用法詳解
C#ListView控件顯示表格(自適應(yīng)寬度),添加Checkbox,刪除選擇項(xiàng),選中顏色和鼠標(biāo)滑過背景變色
ListView“表格編寫”與“增,刪,改”功能解析。
listview與datatable之間的轉(zhuǎn)換
c# listview點(diǎn)擊標(biāo)題排序
How to use Visual C++ to close another application
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服