C# 添加后刷新列表框
我在C#中有一个C# 添加后刷新列表框,c#,winforms,listbox,C#,Winforms,Listbox,我在C#中有一个列表框,并希望在添加新项(通过新表单对话框打开)后刷新它 这是我的代码,它不工作 private void showAllItems() { itemList = Db.getAllItems(); lb_itemList.DataSource = itemList; } private void showItemPreview(object sender, EventArgs e) { s
列表框
,并希望在添加新项(通过新表单对话框打开)后刷新它
这是我的代码,它不工作
private void showAllItems()
{
itemList = Db.getAllItems();
lb_itemList.DataSource = itemList;
}
private void showItemPreview(object sender, EventArgs e)
{
string curItem = lb_itemList.SelectedItem.ToString();
briefPreviewList = Db.getItemBriefPreview(curItem);
string itemInfos = string.Join(",", briefPreviewList.ToArray());
string[] infos = itemInfos.Split(',');
l_itemDB.Text = curItem;
l_CategoryDB.Text = infos[0];
}
private void b_addItem_Click(object sender, EventArgs e)
{
int uid = 1;
AddItem addItemForm = new AddItem(uid);
addItemForm.ShowDialog();
CurrencyManager cm = (CurrencyManager)BindingContext[itemList];
cm.Refresh();
}
我假设,当您插入一个新项目时,它会存储到数据库中,如果是这种情况,那么您需要做的就是重置数据源:
private void b_addItem_Click(object sender, EventArgs e)
{
int uid = 1;
AddItem addItemForm = new AddItem(uid);
addItemForm.ShowDialog();
addItemForm.Dispose();
this.showAllItems();
}
我假设,当您插入一个新项目时,它会存储到数据库中,如果是这种情况,那么您需要做的就是重置数据源:
private void b_addItem_Click(object sender, EventArgs e)
{
int uid = 1;
AddItem addItemForm = new AddItem(uid);
addItemForm.ShowDialog();
addItemForm.Dispose();
this.showAllItems();
}
你说我的代码不起作用是什么意思?
ListBox
是否未更新,或者是否出现异常或其他情况?@nolonar-ListBox未更新,但没有异常。但是cr41g14的答案是:)你是什么意思?ListBox
是否未更新,或者是否出现异常或其他情况?@nolonar-ListBox未更新,但没有异常。但是cr41g14的答案是:啊,dispose函数帮了我很多忙,非常感谢:)啊,dispose函数帮了我很多忙,非常感谢:)