如何在从中删除项目后阻止在ListBox中触发SelectedIndexChanged事件

Hel*_*der 1 .net c# listbox

我正在努力选择一个会导致删除所选项目的项目.问题是,当我删除一个项目时,我正在选择导致另一个删除的附加项目...

删除所选项目后如何取消选择/取消选择?

这导致了我的问题:

    void lbMessage_SelectedIndexChanged(object sender, EventArgs e)
    {
        DialogResult result = new DialogResult();

        result = MessageBox.Show("Are you sure you want to remove this item?", "Removal Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Information);

        if (result == DialogResult.Yes)
        {
            lbMessage.Items.Remove(lbMessage.SelectedItem); 
            lbMessage.SelectedIndex = -1;
        }
        else
        {
        }
    }

    private void btnAddMessage_Click(object sender, EventArgs e)
    {
        lbMessage.Items.Add(txtMessage.Text);
        txtMessage.Text = string.Empty;
    }
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 10

SelectedIndexChanged在删除项目之前尝试删除事件,然后将其重新添加到:

private void lbMessage_SelectedIndexChanged(object sender, EventArgs e) {
  if (MessageBox.Show("Are you sure you want to remove this item?", 
                      "Remove Confirmation", 
                      MessageBoxButtons.YesNo,
                      MessageBoxIcon.Question) == DialogResult.Yes) {
    lbMessage.SelectedIndexChanged -= lbMessage_SelectedIndexChanged;
    lbMessage.Items.Remove(lbMessage.SelectedItem);
    lbMessage.SelectedIndexChanged += lbMessage_SelectedIndexChanged;
  }
}
Run Code Online (Sandbox Code Playgroud)