日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ListView控件的使用

 昵稱48397323 2017-10-14

近日在用ListView中的一些注意點,和公用代碼,整理如下

1.ListView.Items.Clear而不是ListView.Clear

一般如果ListView是動態(tài)填充的,我們在填充之前都會先進行清理。但需要注意一下,我們是清理Items,如果去直接Clear整個ListView,就連原先定義好的列都沒有了

2.給ListView綁定數(shù)據(jù)

ListView并不能直接進行綁定,而是要通過代碼。究其原因,因為它在綁定的時候,還需要設(shè)置圖片等信息。而ListView一般都與TreeView配合使用,它的綁定行為是通過TreeView的點擊來引發(fā)的

        /// <summary>
        /// 當點擊了左邊的Treeview的時候觸發(fā)事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void treeView1_NodeMouseClick(object sender, 
            TreeNodeMouseClickEventArgs e)
        {
            TreeNode node = e.Node;
            List<DTOStudent> result = new List<DTOStudent>();
            if (node.Nodes.Count == 0)//如果不是根節(jié)點
            {
                //按照專業(yè)讀取學員信息
                result = dal.GetStudentBySpec(node.Text);
            }
            else
            {
                //讀取全部學員信息
                result = dal.GetAllStudents();
            }

            BindListView(result);
        }

        private void BindListView(List<DTOStudent> result)
        {
            //將ListView先進行清理
            //一定要注意,是Items.Clear,而不是ListView1.Clear
            listView1.Items.Clear();

            //兩個ImageList也清理一下(因為是動態(tài)添加圖片)
            imageList1.Images.Clear();
            imageList2.Images.Clear();

            int i = 0;
            foreach (DTOStudent student in result)
            {
                ListViewItem item = new ListViewItem(student.UID);
                //動態(tài)得到每個學員所對應(yīng)的圖片
                Image image = Utility.ImageProcessor.ConvertToImage(student.Photo);
                //加入到兩個ImageList里面去
                //這兩個ImageList與ListView的LargeIcon和SmallIcon對應(yīng)
                imageList1.Images.Add(image);
                imageList2.Images.Add(image);
                item.ImageIndex = i;
                i++;

                listView1.Items.Add(item);

                item.SubItems.Add(student.Age.ToString());
                item.SubItems.Add(student.FirstName);
                item.SubItems.Add(student.LastName);
            }
        }

 

3.切換ListView的顯示視圖

        private void 大圖標ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.LargeIcon;
        }

        private void 小圖標ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.SmallIcon;
        }

        private void 清單ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.List;
        }

        private void 詳細詳細ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            listView1.View = View.Details;
        }

4.一些公用代碼(圖片和字節(jié)轉(zhuǎn)換)

using System.Drawing;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO;

namespace Utility
{
    public class ImageProcessor
    {
        /// <summary>
        /// 把圖片轉(zhuǎn)換為字節(jié)(主要是考慮存儲到數(shù)據(jù)庫)
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        public static byte[] ConvertToBytes(string fileName) {
            Image image = Image.FromFile(fileName);
            BinaryFormatter bf = new BinaryFormatter();
            MemoryStream ms = new MemoryStream();

            bf.Serialize(ms, image);
            byte[] result = new byte[ms.Length];
            ms.Position = 0;

            ms.Read(result, 0, result.Length);
            ms.Close();

            return result;
        }

        /// <summary>
        /// 從字節(jié)再生成一個圖片(主要是從數(shù)據(jù)庫讀?。?        /// </summary>
        /// <param name="buffer"></param>
        /// <returns></returns>
        public static Image ConvertToImage(byte[] buffer) {
            MemoryStream ms = new MemoryStream(buffer);
            BinaryFormatter bf = new BinaryFormatter();
            Image result = (Image)bf.Deserialize(ms);
            ms.Close();
            return result;
        }

    }
}

 

大致截圖如下

image 

image

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多