gpt4 book ai didi

C# Winforms 线程 - 延迟子窗体事件直到窗体关闭

转载 作者:行者123 更新时间:2023-11-30 22:48:49 26 4
gpt4 key购买 nike

我有一个有趣的问题..我有一个通过按钮启动另一个表单 (2) 的表单。在 Form2 关闭之前,它有时会触发一个使 Form 1 无效并强制 Form 1 刷新其数据的事件。我遇到的问题是在 Form 2 触发事件后,Form 1 似乎获取并处理了它,并刷新了它的数据,然后 Form 2 才关闭。我希望 Form 2 在 Form1 的事件处理程序捕获并处理事件之前触发事件并关闭。我有一种感觉,它与 BackgroundWorker(有点像 Java 中的 SwingUtilities.InvokeLater)有关。但我对它没有那么多经验。

public class Frm1{

void LaunchForm2(){
Frm2 form2 = new Frm2();
form2.dataChanged += new DataChangeListener(myListener);
form2.showDialog();
}
private void myListener(){
//get my data again
}

}

public class Frm2{

private void Close(){
if(myDataHasChanged){
if(dataChanged != null) {
dataChanged();
}
this.Close();
}
}
}

最佳答案

您在这种情况下使用事件是否有特定原因?

在 Form2 上公开一个属性,使您可以检查数据是否已更改。在 ShowDialog() 调用返回后,检查属性的值并在必要时进行更新。

(编辑以删除我现在无用的代码示例。)

关于C# Winforms 线程 - 延迟子窗体事件直到窗体关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1462233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com