如何检查表单是否已关闭?
当我关闭另一个表单时,我想重新加载listview的项目 我正在做的是:
Form1 =带有ListView的表单
Form2 =带有TextBoxes的表单
那么我该怎么做呢?
抱歉我的英语不好:(。
答案 0 :(得分:1)
您可以处理Closing形式的事件,因为如果您使用dot net 1.1以上的任何内容,已关闭事件已过时
答案 1 :(得分:1)
在Form1中,您可以订阅From2的FormClosed事件。
答案 2 :(得分:1)
最简单的答案是在Form1上创建一个公共方法,让我们称之为RefreshList()
,然后在Form2上的按钮点击事件中,只需调用Form1.RefreshList
即可。这是一个快速的样本:
表格2:
public Form1 ParentForm { get; set; }
private void Button_Click(object Sender, EventArgs args) {
{
// After the rest of your handler
if(ParentForm != null)
ParentForm.RefreshList();
Close(); // Close Form2 here, we're done!
}
表格1:
private void ShowForm2()
{
Form2 form2 = new Form2();
form2.ParentForm = this;
form2.Show();
}
public void RefreshList()
{
// do your refresh here
}
最初你提到你想在Form2关闭时这样做,但后来你提到你想要这样做“当我在Form2中按”添加“时我想在Form1上重新加载”ListView“。”正如其他人所提到的,您可以使用Closed
事件,因此我采用这种方法来解决您的第二种情况。
答案 3 :(得分:0)
我无法发表评论,所以我在这里发帖。
你的意思是什么形式关闭?你能发贴你的代码吗?
如果您需要刷新另一个div的内容,那么我建议使用触发的ajax调用,但另一种形式使用事件。
答案 4 :(得分:0)
如果您只想对特定表单关闭时做出反应,则可以处理FormClosed
事件。如果您想更进一步,有一个FormClosing
事件,您也可以处理,甚至在需要时阻止表单关闭。
答案 5 :(得分:0)
让Form1向Form2的FormClosing
事件添加事件处理程序是一个很好的选择。但是,如果Form2是一个对话框窗口,则有一个更简单的解决方案。换句话说,如果在显示Form2时可以有效锁定和禁用Form1,则可以将Form2显示为对话框窗口。对话窗口同步显示,因此您可以在显示Form2后立即更新列表,并且在Form2关闭之前不会点击该列表更新代码。例如:
form2.ShowDialog(this);
updateList();