星空网 > 软件开发 > ASP.net

C#如何解决对ListView控件更新以及更新时界面闪烁问题

第一个问题:如何更新ListView控件内容

  很多时候运行窗体程序时,由于程序中使用了多线程加之操作不当,所以在对控件操作时会出现下面这样的异常:

  C#如何解决对ListView控件更新以及更新时界面闪烁问题
这是因为我们在窗体中添加的控件都有属于自己的线程,所以不能从其它线程来访问它。
那要如何解决?
使用委托:MethodInvoker,我用这个挺方便的。下面举一个用例:
 1 //调用InitListView(),便可以对ListView控件进行自由更新啦 2 private void InitListView() 3 { 4   MethodInvoker In = new MethodInvoker(InitListViewed); 5   this.BeginInvoke(In); 6 } 7 private void InitListViewed() 8 {10   //在这里面就可以进行ListView控件的构建以及数据更新等11   listView1.Columns.Clear();12 }

第二个问题:如何解决ListView控件更新时闪烁问题

  我在更新控件时,使用的是定时更新,而每次更新控件的内容都会一闪一闪的,用户体验感一点也不好。

那有没有办法使它不闪,我解决的办法是使用双缓冲

  下面举一个例子,简单说一下步骤及办法。

1、第一步:我们创建一个类,类名为ListViewNF,是继承窗体的ListView控件

class ListViewNF : System.Windows.Forms.ListView {    public ListViewNF()    {      // 开启双缓冲      this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);      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 System.Windows.Forms.ListViewNF listView;一行代码注释掉或者删掉

  添加ListViewNF listView1;

ListViewNF listView1;
//private System.Windows.Forms.ListViewNF listView;

第三步:由于你将 listView 改为了 listView1,因此会出现大量错误,所以需要将用到 listView 的地方改为 listView1,

其中有一个地方需要将原来的代码改成下图格式(黄色框框圈出来的地方)

C#如何解决对ListView控件更新以及更新时界面闪烁问题

通过以上方式,更新内容时就会很舒服了。

不知道我说得清不清楚,有错或者有更好的方法大家可以与我交流交流,我也是刚使用C#,还不怎么了解。


 



原标题:C#如何解决对ListView控件更新以及更新时界面闪烁问题

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

中远海控:https://www.goluckyvip.com/tag/49407.html
中远海控海外仓:https://www.goluckyvip.com/tag/49408.html
中远海运:https://www.goluckyvip.com/tag/49409.html
经典产品:https://www.goluckyvip.com/tag/4941.html
中远海运集运:https://www.goluckyvip.com/tag/49411.html
中越陆运专线:https://www.goluckyvip.com/tag/49413.html
携程旅游网折扣优惠最新攻略(携程旅游网更佳折扣优惠):https://www.vstour.cn/a/411227.html
深圳到西安自驾路线攻略 深圳到西安自驾最佳路线:https://www.vstour.cn/a/411228.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流