0

我们目前正在更新我们的数据库系统和所有文件,现在将它们(32bit-2005 VC#)构建为 64 位。我遇到的事情是使用this.closing += new CancelEventArgs(Event Name);赋值时数据泄漏。我发现它已经过时了,正如同事所说的那样,我正在寻找一种方法来切换到使用 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 事件的东西。

4

1 回答 1

0

问题得到了解决。我们的数据库之间发生了数据泄漏,并且在加载此对话框所属的控件时发生了数据泄漏。我感谢所有的帮助。数据库在对话框加载之前拍摄了信息,然后再次发送。只有一组数据被妥善处理。我们解决了这个问题。谢谢你。–

于 2014-08-04T12:26:19.270 回答