今天测试一段程序,发现窗体关闭的手执行了两次FormClosing事件里面的代码,忙活了一上午,但是最终没有找到元到,只能使用一下比较笨
的方法实现了,只能执行一次FormClosing时间的机制。
开发环境 VS2005 关闭的窗体是mdi子窗体。
示例代码/// <summary></summary> /// 添加此变量是为了解决窗体关闭的时候执行两次WSYH_YHJK_SQ_FormClosing 时间的问题, /// 但是原因又没有找到,故此 使用了此比较笨蛋的方法,哈哈 /// private bool closedingFlag = false; private void WSYH_NBTJ_SQ_FormClosing(object sender, FormClosingEventArgs e) { String errMsg = ""; try { if (closedingFlag == true) { return; } closedingFlag = true; if (xtraTabControl_Main.SelectedTabPage == Page_Card) { if (dataObj.DataCahanged() == 1) { IF_SAVE_TS(e, errMsg); } } else if (xtraTabControl_Main.SelectedTabPage == Page_HKJH) { if (dataObj.DataCahanged_HKJH() == 1) { IF_SAVE_TS(e, errMsg); } } } catch (Exception err) { MessageBoxEx.Show(err.Message, MessageStyle.Information); } finally { } }
本文介绍了一个关于窗体关闭事件被重复触发的问题及解决方案。作者在VS2005环境下开发MDI子窗体时遇到FormClosing事件触发两次的情况,通过设置一个布尔标志变量来确保事件只执行一次。
963

被折叠的 条评论
为什么被折叠?



