首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winform 中更新数据时用timer控件,如何让他不删屏?待,

2013-09-06 
winform 中更新数据时用timer控件,怎么让他不删屏?在线等待,急!我用listview绑定数据,要实现自动刷新,现在

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);


            }
        }
        /// <summary>
        /// 绘制listview框架
        /// </summary>
        public void ListViewLoad()
        {
            //繪出listview的框架
            listView1.GridLines = true;//显示行与行之间的分隔线    
            listView1.FullRowSelect = true;//要选择就是一行    
            listView1.View = View.Details;//定义列表显示的方式   
            listView1.Scrollable = true;//需要时候显示滚动条   
            listView1.MultiSelect = false; // 不可以多行选择    
            listView1.HeaderStyle = ColumnHeaderStyle.Clickable;
        }

热点排行