日期:2014-05-17  浏览次数:20867 次

c#listview如何在clear了之后任然能显示当前选中行
form1里面有listview和一个button(修改用户),选中数据,点击button,修改画面跳出,修改好了回到form1,我的操作是将listview清空,再从数据库里读出,请问,怎么样才能任然选中刚才我修改的数据呢?现在是显示没选中,代码:
                    this.listViewDetail1.Items.Clear();
                    string strsql = "select * from fw_m_user";
                    DataSet Ds1 = Sqltool.Select(strsql);
                    for (int i = 0; i < Ds1.Tables[0].Rows.Count; i++)
                    {
                        ListViewItem li = new ListViewItem();
                        li.Text = Ds1.Tables[0].Rows[i]["user_id"].ToString();
                        li.SubItems.Add(Ds1.Tables[0].Rows[i]["user_name"].ToString());
                        li.SubItems.Add(Ds1.Tables[0].Rows[i]["employee_id"].ToString());
                        li.SubItems.Add(Ds1.Tables[0].Rows[i]["dept_id"].ToString());
                     }
c# listview

------解决方案--------------------
清空之前保存selectedindex,重新添加完再选中那个,行不。。
------解决方案--------------------
只能手动设置,在所有ListViewItem中找到和你修改前的内容匹配的项(你这种情况一般用表中的主键进行查找),获取index,然后再ListView.Item[index].Selected = true
------解决方案--------------------
int selectindex = listView1.selectedindex;
listView1.items.Clear();

...

listView1.selectedindex = selectindex;
不知道对不对。。你试试