麻烦帮忙看一下,listview.item.clear()与listview.clear()的区别

我在填充listview的时候,错把listview.clear()当做listview.item.clear()来使用了,结果listview中什么都没有了。
代码如下:
private void acceptorFull()
{
string sql = "select * from mails where isdeleted=1";
FullListview(sql);
}
private void FullListview(string sql)
{
SqlCommand cmd = new SqlCommand(sql,DBHelper.conn);
try
{
DBHelper.conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
listView1.Clear();//这里本来应该是listView1.Items.Clear();的
while (dr.Read())
{
int id=(int)dr["id"];
MessageBox.Show(id.ToString());
ListViewItem lviMail = new ListViewItem(id.ToString());
lviMail.Tag = id;
listView1.Items.Add(lviMail);
lviMail.SubItems.AddRange(new string[] { dr["receiver"].ToString(), dr["acceptor"].ToString(), dr["date"].ToString(), dr["remark"].ToString() });

}
dr.Close();
}

人到中年有点甜
浏览 369回答 2
2回答

慕尼黑8549860

listview.clear()与listview.item.clear()的区别就是使用了listview.item.clear()后,listview控件中仍然保存着listviewitem项的结构,即listview有多个列,每列可能对应的列标题数据等。而当你使用了listview.clear()后,整个listview内保存数据的结构就没了。

回首忆惘然

从msdn拷贝的您可以使用clear从 ListView 控件中移除所有的项和列,而不必从 ListView.ColumnHeaderCollection 和 ListView.ListViewItemCollection 类中调用各个 Clear 方法。注意:Clear 方法不清除为 ListView 控件指定的 Groups。若要清除 Groups,请调用 ListViewGroupCollection.Clear。
打开App,查看更多内容
随时随地看视频慕课网APP