1

这可能是一个愚蠢的问题,但是......我如何在列表视图/网格视图中实现最大数量的选定项目?

我有一个包含 9 个项目的列表视图,我希望用户只能从中选择 5 个。

到目前为止,我已经在SelectionChanged事件中实现了这个:

if (MyListView.SelectedItems.Count >5)
    MyListView.SelectedItems.RemoveAt(0);

这是一种有趣但回避的方法,当第 6 项被选中时,第 1 项被取消选择,因此它们始终保持为 5。

不过,我想要的是,当我已经选择了 5 个项目时,无法再选择其他项目,除非我同时取消选择一个项目并且我满足SelectedItems.Count< 5 的条件。

非常感谢任何建议、想法、代码。

4

2 回答 2

1

这确实是一个愚蠢的问题......我想了很多,但我完全没有想法,在我发布这个之后只有 5 分钟......并且代码看起来像这样:

if (MyListView.SelectedItems.Count >5)
    MyListView.SelectedItems.RemoveAt(MyListView.SelectedItems.Count-1);
于 2013-02-09T21:49:55.270 回答
0

事件处理程序:

    this.MyListView.ItemSelectionChanged += new  System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.MyListView_ItemSelectionChanged);

代码:

    private void MyListView_ItemSelectionChanged(object sender,     ListViewItemSelectionChangedEventArgs e)
    {
        if (MyListView.SelectedItems.Count > 5)
        { MyListView.SelectedItems[0].Selected = false; }
    }
于 2013-02-09T22:35:03.633 回答