我们目前正在通过将它们(32位-2005 VC#)构建到64位来更新我们的数据库系统和所有文件。我遇到的是当使用 this.closing + = new CancelEventArgs(事件名称)进行作业时数据泄漏; 我发现它已经过时了,正如其他同事所说的那样寻找切换到使用FormClosing事件的方法。
...
旧代码和事件前
this.Closing += new CancelEventHandler(AssignUsers_Closing);
private void AssignUsers_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
"some event"
}
catch (Exception ex)
{
ShowException se = new ShowException();
se.ShowDialog(ex);
}
}
这是我想转换为FormClosing事件的地方,以便Windows可以为我处理数据泄漏,而不必为.dispose()函数添加这样的每个事件的 - =语句。
创意/新代码
private void AssignUserForm_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
*code*
// Use e.cancel to test whether to close the form or not.
}
catch (Exception ex)
{
ShowException se = new ShowException();
se.ShowDialog(ex);
}
}
这是否可行?有关如何进行此更改的任何建议吗?
编辑:对我的问题进行更好的概述
更改此内容:
public AssignUserForm()
{
InitializeComponent();
InitMe();
try
{
Database.ApplyFieldSecurity(this);
}
catch { }
}
private void InitMe()
{
try
{
this.Closing += new CancelEventHandler(AssignUsers_Closing);
// Get the users from the system
//Binding happens
}
catch (Exception ex)
{
throw ex;
}
}
将其转换为可以使用Windows事件简单地创建FormClosing事件的内容。
答案 0 :(得分:0)
问题解决了。我们的数据库与此对话框所属的控件正在加载时发生数据泄漏。我感谢所有的帮助。数据库在加载对话框之前拍摄信息,然后再将其发送。只有一组数据得到妥善处理。我们解决了这个问题。谢谢。 -