zoukankan      html  css  js  c++  java
  • [转]写在UserControl销毁之时

    近来使用C#编程,需要在主窗体关闭之前将现在的地图中的图层的某一状态置为初始状态,而此方法又需要写在UserControl自定义控件类之中。

    但是在继承UserControl类的事件里,却找不到合适的事件对此方法进行触发。UserControl并没有定义FormClosing事件。

    想到两种办法:

    1. 重载自定义控件类的Dispose()方法;(网上刚看到一种解决办法,说是重载IDisposable.Dispose方法,Dispose(True);GC.SuppressFinalize(this);还没来得及试过。)

    2. this.ParentForm.FormClosing += new FormClosingEventHandler(ParentForm_FormClosing);

    this.ParentForm属性直接返回父窗体;而this.Parent属性返回最直接的父Control,想要通过此属性得到父窗体还需要遍历嵌套的控件层次。

    但是这两种方法执行的时候,都会偶尔使得程序弹出这样的错误: “将COM对象与其基础RCW分开后不能再使用该对象”。

    最后,突发奇想,想出来一个变通的解决办法:

    将此方法在程序刚加载运行的时候执行,比如注册到主窗体的Load事件中,这样就不会出现异常了。

    不过这种方法使用情况有很大局限性,针对独立的程序系统使用时较为适宜。

    来自: http://blog.csdn.net/freewaywalker/article/details/7757517

  • 相关阅读:
    sql round
    COJ1086 分组01背包
    POJ3624 (01背包)
    COJ1271 Brackets Sequence
    nacoskubernet集群安装(离线安装)
    docker离线安装及本地yum配置
    rediskubernet集群离线安装
    mysql修改密码
    harbor离线安装
    ansibletidb3.0安装(离线版)
  • 原文地址:https://www.cnblogs.com/answer/p/2741142.html
Copyright © 2011-2022 走看看