C# Listview项目清除问题
我正在使用C#windows窗体应用程序中的C# Listview项目清除问题,c#,winforms,C#,Winforms,我正在使用C#windows窗体应用程序中的listview.items.clear()方法,然后添加新的列表视图项 它仍然显示以前加载的项目 listViewUsers.Items.Clear(); dsUsers = aUser.GetUserNamesList(int.Parse(clientId)); int rowsCount = dsUsers.Tables["UserNames"].Rows.Count; for (int i = 0; i <
listview.items.clear()
方法,然后添加新的列表视图项
它仍然显示以前加载的项目
listViewUsers.Items.Clear();
dsUsers = aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount = dsUsers.Tables["UserNames"].Rows.Count;
for (int i = 0; i < rowsCount; i++)
{
dRow = dsUsers.Tables["UserNames"].Rows[i];
lvi = new ListViewItem("item" + i, i);
lvi.SubItems.Add(dRow["User_ID"].ToString().Trim());
lvi.SubItems.Add(dRow["User Name"].ToString().Trim());
listViewUsers.Items.Add(lvi);
}
listViewUsers.Items.Clear();
dsUsers=aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount=dsUsers.Tables[“UserNames”].Rows.Count;
for(int i=0;i
我在listview中有预定义的列。您可以使用以下代码:
listViewUsers.DataSource = null;
dsUsers = aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount = dsUsers.Tables["UserNames"].Rows.Count;
for (int i = 0; i < rowsCount; i++)
{
dRow = dsUsers.Tables["UserNames"].Rows[i];
lvi = new ListViewItem("item" + i, i);
lvi.SubItems.Add(dRow["User_ID"].ToString().Trim());
lvi.SubItems.Add(dRow["User Name"].ToString().Trim());
listViewUsers.Items.Add(lvi);
}
listViewUsers.DataSource=null;
dsUsers=aUser.GetUserNamesList(int.Parse(clientId));
int rowsCount=dsUsers.Tables[“UserNames”].Rows.Count;
for(int i=0;i
也许这段代码可以帮助您解决这个问题
private void Form1_Load(object sender, EventArgs e)
{
ListView listView1 = new ListView();
listView1.Bounds = new Rectangle(new Point(10, 10), new Size(300, 200));
listView1.View = View.Details;
listView1.LabelEdit = true;
listView1.AllowColumnReorder = true;
listView1.CheckBoxes = true;
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.Sorting = SortOrder.Ascending;
var dsUsers = GetUserNamesList();
int rowsCount = dsUsers.Count;
ListViewItem lvi = new ListViewItem("item1", 0);
for (int i = 0; i < rowsCount; i++)
{
var dRow = dsUsers[i].Name;
lvi = new ListViewItem("item" + i, i);
lvi.SubItems.Add(dsUsers[i].UserId.ToString().Trim());
lvi.SubItems.Add(dsUsers[i].Name.ToString().Trim());
lvi.SubItems.Add(dsUsers[i].LastName.ToString().Trim());
listView1.Items.AddRange(new ListViewItem[] { lvi });
}
listView1.Columns.Add("Item Column", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 2", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 3", -2, HorizontalAlignment.Left);
listView1.Columns.Add("Column 4", -2, HorizontalAlignment.Center);
ImageList imageListSmall = new ImageList();
ImageList imageListLarge = new ImageList();
listView1.LargeImageList = imageListLarge;
listView1.SmallImageList = imageListSmall;
this.Controls.Add(listView1);
}
public IList<ClientModel> GetUserNamesList()
{
ClientModel user = null;
IList<ClientModel> listusers = new List<ClientModel>();
user = new ClientModel();
user.UserId = 1;
user.Name = "Juan 1";
user.LastName = "Donoban 1";
listusers.Add(user);
//////////////////////////////////////
user = new ClientModel();
user.UserId = 2;
user.Name = "Juan 2";
user.LastName = "Donoban 2";
listusers.Add(user);
return listusers;
}
}
private void Form1\u加载(对象发送方,事件参数e)
{
ListView listView1=新建ListView();
listView1.Bounds=新矩形(新点(10,10),新大小(300200));
listView1.View=View.Details;
listView1.LabelEdit=true;
listView1.AllowColumnReorder=true;
listView1.checkbox=true;
listView1.FullRowSelect=true;
listView1.GridLines=true;
listView1.Sorting=SortOrder.升序;
var dsUsers=GetUserNamesList();
int rowsunt=dsUsers.Count;
ListViewItem lvi=新的ListViewItem(“item1”,0);
for(int i=0;i
您正在清除“listViewUsers”,但填充ListViewCiUsers是一个输入错误listViewUsers.Items.Add(lvi);清除后是否尝试在listview上调用Update
和Refresh
?是。也尝试了更新和刷新方法。没有work@user1615089怎么样?这适用于WPF应用程序。我的应用程序仍然是WinForms。