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