用户控件继承子 UserControl 。
现在有个业务需求在UserControl 所在的窗体关闭时解除事件HMouseDown绑定。
因没有相关的Close事件。后来本人想了一个办法在 ROICtlDesigner类的 Dispose 方法中执行相关的释放代码 比如解除事件绑定 释放资源
public partial class ROICtl : UserControl
{
private IWindowDisplay window;
public IWindowDisplay WindowDisplay
{
get { return window; }
set
{
window = value;
BindingEvents();
}
}
void BindingEvents()
{
if (window != null)
{
window.HMouseDown += WindowDisplay_HMouseDown;
}
}
private void WindowDisplay_HMouseDown(object sender, HMouseEventArgs e)
{
try
{
if (!IsPress && e.Button == MouseButtons.Middle)
{
IsPress = true;
}
}
catch (Exception)
{ }
}
}
partial class ROICtl
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
if (window != null)
{
window.HMouseDown -= WindowDisplay_HMouseDown;
}
base.Dispose(disposing);
}
}