C# Winform ListView 做个日志消息显示功能
▲ 点击按钮效果
▲ 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++;
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了