【问题标题】:Removing an item from listbox in winform从winform中的列表框中删除项目
【发布时间】:2012-12-12 07:26:17
【问题描述】:

我正在使用 VS2010、C#、.Net 4.0 和 WinFormApplication。

我有一个从数据源填充的列表框。我想在双击某个项目时删除它们。

我在某处读到,如果我从数据源填充列表框,则无法删除任何项目。这是真的?如果没有,那么我该如何删除单个项目?

我尝试了以下方法:

listbox1.Items.Remove(listbox1.SelectedIndex);

listbox1.Items.Remove(listbox1.SelectedIndex);

lbTableColumns.Items.Remove(lbTableColumns.SelectedItem);

导致以下错误:

错误:设置 DataSource 属性时无法修改 Items 集合。

【问题讨论】:

标签: c# winforms listbox


【解决方案1】:

使用DataBinding 时,您无法从ListBox 中删除项目,就像错误状态一样。如果对象在DataSource 中发生更改,但已从演示文稿中删除,会发生什么情况?

如果您正在使用数据源,则需要从数据源本身中删除对象。试试这样的:

IList<MyObj> myList = new List<MyObj>();

private void DataBind()
{
    myListBox.BeginUpdate();
    myListBox.DataSource = myList;
    myListBox.EndUpdate();
}

private void OnMyListBoxItemDoubleClicked(object sender, EventArgs e)
{
    myList.RemoveAt(myListBox.SelectedIndex);
    DataBind();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多