⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listviewfunc.cs

📁 定义社区节点
💻 CS
字号:
using System;


using System.Collections.Generic;
using System.Windows.Forms;
using feiyun0112.cnblogs.com.CSDNReader.Controls;
using feiyun0112.cnblogs.com.CSDNReader.Model;

namespace feiyun0112.cnblogs.com.CSDNReader.Functions
{
    /// <summary>
    /// Summary description for ListViewFunc.
    /// </summary>
    public static class ListViewFunc
    {
        
        public static void Clear()
        {
            Variant.MainForm.listTopics.Items.Clear();
        }

        /// <summary>
        /// 显示帖子列表
        /// </summary>
        /// <param name="intRoomID"></param>
        public static void RefreshListView(int  intRoomID)
        {
            Room r = Variant.MainForm.listTopics.Tag as Room;
            if (r!=null  && r.ID==intRoomID )
            {
                List<Topic> listTopics = r.Topics;
                List<ListViewItem> listItems = new List<ListViewItem>(listTopics.Count);
                foreach (Topic t in listTopics)
                {
                    try
                    {

                        ListViewItem item = CreateListViewItem(t);
                        listItems.Add(item);

                        continue;
                    }
                    catch (Exception exception1)
                    {
                        Console.WriteLine(exception1.ToString());
                        continue;
                    }
                }
                ListViewItem[] itemArray1 =listItems.ToArray( );
                Variant.MainForm.listTopics.BeginUpdate();
                try
                {
                    Variant.MainForm.listTopics.Items.Clear();
                    Variant.MainForm.listTopics.Items.AddRange(itemArray1);
                }
                finally
                {
                    Variant.MainForm.listTopics.EndUpdate();

                }
            }
        }

        public static   ListViewItem CreateListViewItem(Topic t)
        {
            if (t == null)
            {
                return null;
            }
            ListViewItem item1 = new ListViewItem(new string[] { t.Name, t.User, t.Point, t.Replies,t.ReplyUser, t.ReplyTime });
            item1.Tag = t;


            setListviewItemFont(item1, t);

            setListviewItemImage(item1, t);

            return item1;
        }

        /// <summary>
        /// 根据帖子的状态设置显示的字体
        /// </summary>
        /// <param name="item1"></param>
        /// <param name="t"></param>
        public static   void setListviewItemFont(ListViewItem item1, Topic t)
        {
            if (item1==null || t == null)
            {
                return  ;
            }


            System.Drawing.Font font;
            
            if (t.HaveRead)
            {
                //已读
                font = t.HaveReplied ? Setting.Fonts.ReadedReplied  : Setting.Fonts.Readed;
            }
            else if (t.HaveReplied)
            {
                //已回复
                font = t.ReadAgain ? Setting.Fonts.Replied : Setting.Fonts.ReadedReplied;
            }
            else
            {                
                font = t.ReadAgain ? Setting.Fonts.ReadAgain : Setting.Fonts.NoRead;
            }

            item1.Font = font;
            for (int num1 = 0; num1 < (item1.SubItems.Count - 1); num1++)
            {
                item1.SubItems[num1].Font = font;
            }
        }

        /// <summary>
        /// 设置帖子前的图标,以求醒目
        /// </summary>
        /// <param name="item1"></param>
        /// <param name="t"></param>
        public static   void setListviewItemImage(ListViewItem item1, Topic t)
        {
            item1.ImageIndex = -1;

            if(int.Parse ( t.Point)>=100)
                item1.ImageKey ="money";
            if (int.Parse(t.Replies) == 0)
                item1.ImageKey = "NewTopic";
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -