zoukankan      html  css  js  c++  java
  • ISupportInitialize.BeginInit()的问题

      今天碰到了一个关于ISupportInitialize.BeginInit()的问题,在winform界面中用到了一个datagridview控件,但是后来由于需要添加分页的逻辑,就在datagridview上封装了一层,变成控件dataGridViewPage,然后直接在设计器中把DataGridView替换成DataGridViewPage,结果编译没有问题,但是运行的时候出现错误,异常为无法将类型为“DataGridViewPage”的对象强制转换为类型“System.ComponentModel.ISupportInitialize”,后来发现是因为封装以后的控件没有继承ISupportInitialize接口,所以就去MSDN看了一下ISupportInitialize接口的用处,ISupportInitialize接口下有两个方法BeginInit()和EndInit(),主要的作用是在设计器中控制控件的设置顺序,继承ISupportInitialize接口的控件在设计器中设置的顺序是BeginInit()—>用户自己的设置—>EndInit(),而中间的环节是使用控件的用户可以自己设置的,所以我们的控件如果必须在属性设置最后或最开始执行某些设置的时候,需要继承ISupportInitialize接口,把需要设置的属性放到BeginInit()或EndInit()里就可以了。

  • 相关阅读:
    矩阵求逆的几种方法总结(C++)
    c++ 继承类强制转换时的虚函数表工作原理
    博客开通(附本博客样式)
    Python-SocketServer模块
    Python-UDP编程
    Python-TCP编程
    Python-logging模块
    Python-多线程+多进程包(concurrent包,处理并发)
    07数组与接口
    java作业 06
  • 原文地址:https://www.cnblogs.com/sauronKing/p/5444199.html
Copyright © 2011-2022 走看看