从ListBox中删除项目时,C#程序崩溃

时间:2015-04-06 22:25:53

标签: c# winforms listbox

我使用BindingList作为ListBox的数据源。

    public static BindingList<memo> memosList = new BindingList<memo>();

每当我尝试删除所选对象(通过按钮)时,我的程序崩溃。

    private void editMemo_Click(object sender, EventArgs e)
    {
        listBox1.Items.Remove(listBox1.SelectedItem);
    }

我收到以下错误:

  

发生了'System.ArgumentException'类型的未处理异常   System.Windows.Forms.dll中

     

附加信息:项目集合时无法修改   已设置DataSource属性。

我也尝试过使用:

    private void editMemo_Click(object sender, EventArgs e)
    {
        Form2.memosList.Remove(listBox1.SelectedIndex);
    }

然而这不允许我编译。

如何在不抛出异常的情况下删除该项目?

1 个答案:

答案 0 :(得分:2)

您应该将已绑定的BindingList中的项目移除到列表的DataSource

private void editMemo_Click(object sender, EventArgs e)
{
    if(listBox1.SelectedItem != null)
    {
        BindingList<memo> bl = listBox1.DataSource as BindingList<memo>;
        bl.Remove(listBox1.SelectedItem as memo) ;
    }
}
相关问题