c# - Listview ItemSelectionChanged 触发两次?

标签 c# winforms events .net-3.5 listview

我在 C# 中有一个带有 ListView 控件的 Winforms 应用程序。此 ListView 显示待办事项列表,我正在使用“ItemSelectionChanged”事件来处理更新。

问题是每次我尝试进行更新时,“ItemSelectionChanged”事件都会触发两次。

ItemSelectionChanged 事件刷新表单以表示更新(即从列表中删除项目)。

有没有办法在刷新后禁止事件触发?

更新 1:

private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
    {   
        if (e.IsSelected)
        {                
            listView1.Items[e.ItemIndex].Remove();

            listView1.SelectedIndices.Clear();
            listView1.Focus();

            listView1.Update();
        }
        else
        {

        }

    }

最佳答案

是的,它会触发两次。一次是因为之前选中的项目变成未选中状态,再次是因为新选中的项目。您只需确保看到选择事件:

    private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
        if (e.IsSelected) {
            // Update form
            //...
        }
    }

关于c# - Listview ItemSelectionChanged 触发两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3229498/

相关文章:

c# - 如何确定所选节点是 TreeView 中的子节点还是父节点?

c# - Unity 动画事件 - 未选择任何功能

jquery - 我应该使用 .live(...) 吗?

c# - 如何在asp .net C#中创建 session 登录和注册成员(member)资料页面

c# - 默认情况下,当我将数据绑定(bind)到 Windows 窗体控件时会发生什么。

c# - Windows 集成 (NTLM) 身份验证与 Windows 集成 (Kerberos)

c# - 获取 NumericUpDown 的值会移动插入符位置,我可以停止吗?

javascript - Window.resizeTo 不起作用

c# - 拆箱特定结构成员

c# windows 服务还是普通程序?