1、 添加表头
this.listView1.Columns.Add("ID", 200, HorizontalAlignment.Center); //列名,长度,显示方式
this.listView1.Columns.Add("R/S", 200, HorizontalAlignment.Center); //一步添加
this.listView1.Columns.Add("Data Len", 200, HorizontalAlignment.Center); //一步添加
this.listView1.Columns.Add("Data", 300, HorizontalAlignment.Center); //一步添加
可以载添加控件后在属性中添加表头
2、添加每行的内容
ListViewItem lvi = new ListViewItem();
lvi.Text = ID;
lvi.SubItems.Add(RS);
lvi.SubItems.Add(DataLen.ToString());
lvi.SubItems.Add(DataBuffer);
this.listView1.Items.Add(lvi);
效果图:
3、当数据更新速度太快,导致界面闪烁,解决方法如下:
首先建立一个类继承自System.Windows.Forms.ListView
代码:
class ListViewNF : System.Windows.Forms.ListView
{
public ListViewNF()
{
// 开启双缓冲
this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);
// Enable the OnNotifyMessage event so we get a chance to filter out
// Windows messages before they get to the form's WndProc
this.SetStyle(ControlStyles.EnableNotifyMessage, true);
}
protected override void OnNotifyMessage(Message m)
{
//Filter out the WM_ERASEBKGND message
if (m.Msg != 0x14)
{
base.OnNotifyMessage(m);
}
}
然后修改对应Designer文件中的以下代码:
System.Windows.Forms.ListView listView1;
修改为
ListViewNF listView1;
listView1 = System.Windows.Forms.ListView();
修改为
listView1 = new ListViewNF();
针对于大量刷新数据,datagridview会有缓冲延迟,而ListView可以短时间内处理大量的数据,将闪烁问题解决后,显示数据不会出现延时问题。