Pau*_*els 5 .net c# listview winforms
我有以下代码,它基本上从数据库中获取值并填充listview.
using (IDataReader reader = cmd.ExecuteReader())
{
lvwMyList.Items.Clear();
while (reader.Read())
{
ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
lvi.SubItems.Add(reader["Value2"].ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,这会以较短的间隔(每秒)重复执行,导致列表视图中的项目不断消失并重新出现.有没有办法阻止列表视图刷新,直到完成更新?如下所示:
using (IDataReader reader = cmd.ExecuteReader())
{
lvwMyList.Items.Freeze(); // Stop the listview updating
lvwMyList.Items.Clear();
while (reader.Read())
{
ListViewItem lvi = lvwMyList.Items.Add(reader["Value1"].ToString());
lvi.SubItems.Add(reader["Value2"].ToString());
}
lvwMyList.Items.UnFreeze(); // Refresh the listview
}
Run Code Online (Sandbox Code Playgroud)
像这样:
try
{
lvwMyList.BeginUpdate();
//bla bla bla
}
finally
{
lvwMyList.EndUpdate();
}
Run Code Online (Sandbox Code Playgroud)
如果要在填充之前清除列表,请确保lvwMyList.Items.Clear() 在之后 调用BeginUpdate.
| 归档时间: |
|
| 查看次数: |
16098 次 |
| 最近记录: |