如何使用此方法来避免listView闪烁?

时间:2017-03-14 10:38:35

标签: c# .net winforms listview

public ListViewNF(IContainer container)
{
    container.Add(this);

    InitializeComponent();

    //Activate double buffering
    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);
    }
}

在加载事件中:

private void Form1_Load(object sender, EventArgs e)
{
    ListViewNF nf = new ListViewNF();
}

我在ListViewNF

内的行上收到错误
InitializeComponent();
  

严重级代码描述项目文件行抑制状态   错误CS0120非静态字段,方法或属性需要对象引用' Form1.InitializeComponent()'

我尝试删除此行以避免错误,但它没有修复闪烁。 我还尝试添加listView1beginupdateendupdate

listView1.BeginUpdate();
foreach (ListViewItem li in listView1.Items)
{
    if (li.SubItems[2].Text == lastUrl)
    {
        li.SubItems[0].Text = "Downloaded";
        li.SubItems.Add("Color");
        li.SubItems[0].ForeColor = Color.Green;
        li.UseItemStyleForSubItems = false;
    }
}
listView1.EndUpdate();

我在添加ListViewNF方法之前尝试过此操作。 到目前为止,闪烁没有任何帮助。有什么建议吗?

0 个答案:

没有答案