C#学习教程:如何取消选择ListView中的项目?分享


如何取消选择ListView中的项目?

我有一个ListView,里面有几个项目。 当ListView失去焦点时,最后选择的ListViewItem仍然以灰色背景“选中”。
我想在ListView.FocusLost上实现它,选择消失了,因此将发生ListView.SelectedIndexChanged事件。
有任何想法吗?

我使用的是.NET CF 3.5。

假设您正在从父窗体/控件访问ListView。

您可以在表单的/ control的构造函数/ load事件中添加这段代码:

this.myListView.LostFocus += (s, e) => this.myListView.SelectedIndices.Clear(); 

好的,所以在你的情况下,你将用以下代码替换该委托:

 if (this.myListView.SelectedIndices.Count > 0) for (int i = 0; i < this.myListView.SelectedIndices.Count; i++) { this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false; } 

你可以给代码一个更好的forms,顺便说一句。

 myListView.SelectedItems.Clear(); 

我知道这已经晚了,但是如果其他人需要解决方案,我想添加到解决方案中。

您需要将Focused属性设置为false以避免取消选择具有焦点的项目。

 for (int i = 0; i < this.myListView.SelectedIndices.Count; i++) { this.myListView.Items[this.myListView.SelectedIndices[i]].Selected = false; this.myListView.Items[this.myListView.SelectedIndices[i]].Focused = false; } 

这更容易。

 this.myListView.SelectedIndex = -1; this.myListView.Update(); 

解决这个问题的另一个有效方法是:

 foreach (ListViewItem i in myListView.SelectedItems) { i.Selected = false; } 

如果您使用的是EditItemTemplate而不是ItemTemplate,那么您可能一直在试图找出为什么ListView1.SelectedIndex = -1; 一直没有工作。 这是因为你需要使用ListView1.EditIndex = -1;

上述就是C#学习教程:如何取消选择ListView中的项目?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---猴子技术宅(www.ssfiction.com)

 if (listView1.SelectedItems.Count > 0) for (int i = 0; i < listView1.SelectedItems.Count; i++) { listView1.SelectedItems[i].Selected = false; } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/960006.html

发表评论

邮箱地址不会被公开。 必填项已用*标注