今天测试一段程序,发现窗体关闭的手执行了两次FormClosing事件里面的代码,忙活了一上午,但是最终没有找到元到,只能使用一下比较笨
的方法实现了,只能执行一次FormClosing时间的机制。
开发环境 VS2005 关闭的窗体是mdi子窗体。
示例代码///
/// 添加此变量是为了解决窗体关闭的时候执行两次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 { }
}