处理用户控件,真的是要编辑.designer.cs文件吗?

对于具有必须处理的内部数据结构的用户控件,是将该代码添加到.designer.cs文件中的Dispose方法的正确位置,还是存在我们打算使用的事件?

编辑 :这是一个winforms用户控件。

如果你在谈论WinForms,我通常会采用两种方法之一来解决这个问题。

方法1

打开Form.Designer.cs文件。 在生成的dispose方法中,我添加了对DisposeCore的调用。 然后我回到Form.cs并添加一个DisposeCore方法,现在将在dispose期间调用。 我将所有处理逻辑添加到此方法中。

从技术上讲,不支持编辑设计器文件。 但是我发现当设计师重新生成代码时,这个特殊的编辑不会被冲走。

方法2

向Form.Disposed添加一个事件处理程序,并在处理程序中执行我的dispose逻辑。 这是首选方法,因为它是受支持的操作,不会受到您尚未遇到的某些设计师生成的影响。

你能说清楚什么样的控制? ASP.NET,WinForms?

在ASP.NET中,您可以:

protected override void OnUnload(EventArgs e){ base.OnUnload(e); //Unload here... } 

或者,您可以将其剪切并粘贴到主.cs文件中。 该代码不在“#region Component Designer生成的代码”中,因此Studio不会错过它。