日期:2014-05-18  浏览次数:20870 次

VS2005中winform的listview问题!(大家帮帮忙)
将winform的
listview的view=Details
listview的MultiSelect = true;
listview的CheckBoxes = true;
之后。
用shift或者ctrl键+鼠标左键单击进行多选时(只是想高亮显示既selectd=true),但当这些行被高亮显示的时候,checkbox也被自动复选上了。(如果有些行原来已经被选中就会变成没有被选中。)
有什么办法可以不让这些高亮行的checkbox被选上?
附件中有界面的截图。


------解决方案--------------------
C# code
bool isSelectMode = false;

        private void listView1_ItemCheck(object sender, ItemCheckEventArgs e)
        {
            if (listView1.SelectedItems.Count>1 && isSelectMode)
            {
                e.NewValue = e.CurrentValue;
                isSelectMode = false;
            }
        }

        private void listView1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control || e.Shift)
                isSelectMode = true;
        }

        private void listView1_KeyUp(object sender, KeyEventArgs e)
        {
            isSelectMode = false;
        }