Listview ItemSelectionChanged发射两次?

Joh*_*n M 8 c# events listview .net-3.5 winforms

我在C#中有一个带有ListView控件的Winforms应用程序.此ListView显示TO-DO项目列表,我使用'ItemSelectionChanged'事件来处理更新.

问题是'ItemSelectionChanged'事件每次尝试进行更新时都会触发两次.

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

有没有办法在刷新后禁用事件?

UPDATE1:

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

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

            listView1.Update();
        }
        else
        {

        }

    }
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 13

是的,会发射两次.一次因为先前选择的项目未被选中,再次为新选择的项目.您只需要确保看到选择事件:

    private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) {
        if (e.IsSelected) {
            // Update form
            //...
        }
    }
Run Code Online (Sandbox Code Playgroud)

  • 不,它肯定会开火两次。这是设计使然。关键是要检测您感兴趣的那个。从您的问题中看不清楚。 (2认同)