C# Winform ListView 做个日志消息显示功能_ide

▲ 点击按钮效果

C# Winform ListView 做个日志消息显示功能_ide_02

▲ ImageList 里面放了三张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CsTest
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
InitListView(listView1, imageList1);
}

private void InitListView(ListView listView, ImageList imageList)
{
listView.SmallImageList = imageList;
ColumnHeader columnHeader1 = new ColumnHeader() { Name = "dateTime", Text = "日志时间", Width = 200 };
ColumnHeader columnHeader2 = new ColumnHeader() { Name = "infoString", Text = "日志信息", Width = 220 };
listView.Columns.AddRange(new ColumnHeader[] { columnHeader1, columnHeader2 });

listView.HeaderStyle = ColumnHeaderStyle.None;
listView.View = View.Details;
listView.HideSelection = false;
listView.SmallImageList = imageList;
}

private void Addlog(int imageIndex, string info)
{
Addlog(listView1, imageList1, imageIndex, info, 20);
}

private void Addlog(ListView listView, ImageList imageList, int imageIndex, string info, int maxDisplayItems)
{
if (listView.InvokeRequired)
{
listView.Invoke(new Action(() =>
{
if (listView.Items.Count > maxDisplayItems)
{
listView.Items.RemoveAt(maxDisplayItems);
}

ListViewItem lstItem = new ListViewItem(" " + DateTime.Now.ToString(), imageIndex);
lstItem.SubItems.Add(info);
listView.Items.Insert(0, lstItem);
}));
}
else
{
if (listView.Items.Count > maxDisplayItems)
{
listView.Items.RemoveAt(maxDisplayItems);
}

ListViewItem lstItem = new ListViewItem(" " + DateTime.Now.ToString(), imageIndex);
lstItem.SubItems.Add(info);
listView.Items.Insert(0, lstItem);
}
}

private int count = 0;
private void btnSendMessage_Click(object sender, EventArgs e)
{
int index = count % 3;

switch (index)
{
default:
case 0:
Addlog(index, "这是一条正常消息");
break;
case 1:
Addlog(index, "这是一条警告消息");
break;
case 2:
Addlog(index, "这是一条错误消息");
break;
}

count++;
}
}
}