嗨我有问题check this 我有2个表单,form1包含列表数据,form2包含详细数据,当用户想删除列表中的数据时,用户必须打开form2(详细数据)因为在form1中没有可用的删除功能,只需查看详细信息
我已经能够删除数据库中的数据,并在按下按钮删除后调用close()函数关闭form2。现在在屏幕上是form1(列表数据)
问题是我刚刚删除的数据,直到程序重启,通常我通过从列表框中删除数据来做一些事情
quizzes.RemoveAt(myListBox.SelectedIndex);
但它不能用这种方式工作,因为它使用的是2种形式......(这就是我在那里要求的)
在这里我想要不同的选项来存档它(我担心如果我在那个问题中提出它变成'X Y问题'),是否可以强制重新加载数据而无需重启应用程序?如果有,你能举例说明怎么做吗?
答案 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
}