最近在学单元测试,原程序中有以下代码
        internal void ModifyEmployeeToListView()
        {
            ListViewItem listViewItem = listView3.SelectedItems[0];
            ...
        }
用单元测试的方法测试ModifyEmployeeToListView,首先需要有一个ListView以及被选中的Items,我的做法如下
            
            listView3.Columns.Clear();
            listView3.Columns.Add("branchID", "部门", 80);
            ListViewItem listViewItem = new ListViewItem();
            listViewItem.Text = "总公司";
            listViewItem.SubItems.Add("其他");
            listView3.Items.Clear();
            listViewItem.SubItems[1].Text = "新建部门";
            listView3.Items.Add(listViewItem);
            listView3.Items[0].Selected = true;//设置Items[0]为被选中状态,但listView3.SelectedItems.Count始终为0。若此处为 listViewItem.Selected = true;的话listView3.SelectedItems.Count也是0
            Console.Write(listView3.SelectedItems.Count);//
            ModifyEmployeeToListView(employeeInfo, branchIdDic);
请教各位,既然设置Items.selected = true不起作用,那么该如何设置才能在进入ModifyEmployeeToListView方法时listView3.SelectedItems[0]不为空?

解决方案 »

  1.   

    有SELECTINDEX吗/
    有了试下了,大同小异!
      

  2.   

    补充一下:ListView是Winform中的一个控件,没有SelectedIndex,只有SelectedIndices,它和SelectedIndex的功能差不多,但它是只读的。在还没有“选中某Item”这一状态下,SelectedIndices没有实际用处啊~ 我现在是在模拟选中某Item这个过程
      

  3.   

    你确定使用listView3.Items[0].Selected = true;好使?我都试了一天了啊~ 我是用VS自带的VSTS单元测试工具生成的测试代码
      

  4.   

    先设置 listView3.HideSelection = false;
    然后listView3.Items[0].Selected = true;语句就会生效
      

  5.   

    listView3.Items[0].Selected = true;
    listView3.Select();
    就够了,还有这个方法不要放在窗体加载事件里面,用一个按钮来模拟