C# 2.0,WinForm,ListView控件,详细列表模式(Details),只充许单行选择。
默认情况下,当鼠标在ListWiew的空白处点击后,它的选定项(SelectedItems)就会失去焦点,表现为没有任何一项(ListViewItem)被选中。
现在我想知道的是如何才能让当Item个数不为0时,始终有一项被选中。我想到的方法是定义一个m_LastSelectedItem来记忆失去焦点前的状态。但是事实上并不是如此简单。因为SelectedIndexChanged事件总在每次用鼠标或键盘更改选定项时被触发2次。假如有一个叫做SelectedIndexChanging的事件就好了。
别告诉我通过改变HideSelection属性来实现。这个是表示在ListVies而不是ListViewItem失去焦点前保持状态。
默认情况下,当鼠标在ListWiew的空白处点击后,它的选定项(SelectedItems)就会失去焦点,表现为没有任何一项(ListViewItem)被选中。
现在我想知道的是如何才能让当Item个数不为0时,始终有一项被选中。我想到的方法是定义一个m_LastSelectedItem来记忆失去焦点前的状态。但是事实上并不是如此简单。因为SelectedIndexChanged事件总在每次用鼠标或键盘更改选定项时被触发2次。假如有一个叫做SelectedIndexChanging的事件就好了。
别告诉我通过改变HideSelection属性来实现。这个是表示在ListVies而不是ListViewItem失去焦点前保持状态。
解决方案 »
- treeview的afterSelect事件与Click事件
- request.GetResponse 远程服务器返回错误: (500) 内部服务器错误。
- C#用webBrowser控件如何禁止弹出新窗口是IE的
- 失业两个月为纪念这个刻骨铭心的日子散分
- C#如何开发后台运行程序。
- 自动弹出菜单问题
- sql tinyint型字段放在C#中什么变量中?(急)
- 获取webBrowser的元素的坐标(急)
- 求助,如何建二维Arraylist,不定长的数组?
- Oracle怎么对记录加锁?
- treeview怎么按层遍历啊?
- 远程计算机接入,本地是Adsl上网,本地有个内网,内网中有个信息系统,远程如何接入了,谢谢了
this.listView1.Items.AddRange(new ListViewItem[] { new ListViewItem(new string[] { "A111","B111"})
, new ListViewItem(new
string[]{"A111", "B222"})});
this.listView1.Click += new EventHandler(listView1_Click);
} void listView1_Click(object sender, EventArgs e)
{
label1.Text = this.listView1.SelectedItems.Count.ToString();
}
你测试的结果确实没有问题,但是当你点击ListWiew空白处时,它并不会触发Click事件,所以当然不会变为0啦。
而此时,那个可爱的蓝色背景(表示被选中)却不见了。
我要想实现的效果是项个数不为0的任何时候都有且只有一个项被选中,即始终有一个项有个蓝色背景。