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

  • 相关阅读:
    集合Hashtable Dictionary Hashset
    ArrayList 排序Sort()方法扩展
    Visual Studio 2019使用Intel C++ Compiler
    Visual Studio工具 vcpkg简介
    PE结构学习
    netapi32的一些利用方式
    windows api和创建服务
    导出firfox保存的密码
    在Active Directory中滥用无约束Kerberos委派
    Service Principal Name (SPN)
  • 原文地址:https://www.cnblogs.com/answer/p/2741142.html
Copyright © 2011-2022 走看看