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()里就可以了。

  • 相关阅读:
    聊聊click延迟和点击穿透
    setAttribute的浏览器兼容性(转)
    浅谈JS中的高级函数
    跨域总结
    本地存储小结
    ubuntu下pip的安装和使用
    并发编程艺术-锁类型以及底层原理
    HTTP协议以及HTTP2.0/1.1/1.0区别
    Paxos
    jvm垃圾收集器总结jdk1.7
  • 原文地址:https://www.cnblogs.com/sauronKing/p/5444199.html
Copyright © 2011-2022 走看看