删除数据后更新列表框中的数据而不重新启动程序(winform)

时间:2014-02-05 03:47:44

标签: c# database

嗨我有问题check this 我有2个表单,form1包含列表数据,form2包含详细数据,当用户想删除列表中的数据时,用户必须打开form2(详细数据)因为在form1中没有可用的删除功能,只需查看详细信息

我已经能够删除数据库中的数据,并在按下按钮删除后调用close()函数关闭form2。现在在屏幕上是form1(列表数据)

问题是我刚刚删除的数据,直到程序重启,通常我通过从列表框中删除数据来做一些事情

quizzes.RemoveAt(myListBox.SelectedIndex);

但它不能用这种方式工作,因为它使用的是2种形式......(这就是我在那里要求的)

在这里我想要不同的选项来存档它(我担心如果我在那个问题中提出它变成'X Y问题'),是否可以强制重新加载数据而无需重启应用程序?如果有,你能举例说明怎么做吗?

1 个答案:

答案 0 :(得分:1)

如果您的form2是DialogForm,那么您可以在关闭form2时重新加载列表。使用填充列表时第一次使用的相同代码。

另一个好方法是使用事件处理程序。在form2中定义一个公共事件,并在删除某些内容时引发事件。在form2中为form2中的公共事件添加事件处理程序。

在form2中

public event DataDeleted(int i);

//删除一些数据引发事件后

if (DataDeleted!= null) {
    DataDeleted(deletedItemIndex);
}

并在form1

//when loading form2 from form1
Form2 objFrm2 = new Form2;
objFrm2.DeletedData += MyMethod;

//定义方法MyMethod

private void MyMethod(int i)
{
//i is index
//delete the item from list
}