【问题标题】:Stop Button Causing ListBox to Deselect停止按钮导致 ListBox 取消选择
【发布时间】:2013-12-29 14:51:27
【问题描述】:

我有一个按钮,当我单击它时,它会从名为listBoxNamesListBox 中删除选定的ListItem,并从名为people 的列表中删除选定的Person 对象。

但是,单击删除按钮后会弹出一条错误消息,告诉我索引超出范围。这让我相信点击按钮后,它会取消选择ListBox,因此listBoxNames.SelectedIndex 返回-1。

是否有这个问题或者我犯了一些愚蠢的错误?

private void deleteEntryBtn_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            listBoxNames.Items.Remove(listBoxNames.SelectedItems[0]);
            people.RemoveAt(listBoxNames.SelectedIndex);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

【问题讨论】:

    标签: c# wpf button listbox


    【解决方案1】:

    您的代码会删除所选项目。
    一旦该项目不存在,就没有选择。

    您需要在删除之前检查选择了哪个项目。

    【讨论】:

    • 掌心 - 颠倒代码的顺序就足够了。
    【解决方案2】:

    试试这个:

    private void deleteEntryBtn_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            people.RemoveAt(listBoxNames.SelectedIndex);
            listBoxNames.RemoveAt(listBoxNames.SelectedIndex);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2013-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多