📄 listviewfunc.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 + -