日期:2014-05-17  浏览次数:20911 次

winform 中更新数据时用timer控件,怎么让他不删屏?在线等待,急!
我用listview绑定数据,要实现自动刷新,现在我用了一个timer控件来控制,时间设置的是1秒,
但是现在每秒都会闪动下窗体,这样效果不好,怎么能让他不闪动呢?

------解决方案--------------------
测试代码:一个listview,一个timer
 private void Form1_Load(object sender, EventArgs e)
        {
            ListViewLoad();
            listView1.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance 
------解决方案--------------------
 System.Reflection.BindingFlags.NonPublic).SetValue(listView1, true, null);//这句有注释和没注释效果很明显
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            listadd();
        }

        public void listadd()
        {
            ListViewItem lvi;
            listView1.Items.Clear();
            for (int i = 0; i < 20; i++)
            {
                lvi = new ListViewItem((listView1.Items.Count + 1).ToString());
                lvi.SubItems.Add(i.ToString());
                lvi.SubItems.Add((i + 1).ToString());
                lvi.SubItems.Add((i + 2).ToString());
                listView1.Items.Add(lvi);