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

posted on 2016-04-28 20:49  SauronKing 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/sauronKing/p/5444199.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# WinForm 中添加 Microsoft Forms 2.0 Frame 的步骤如下: 1. 打开 Visual Studio,创建一个新的 Windows 窗体应用程序。 2. 在工具箱中找到“COM”选项卡,并在其中找到“Microsoft Forms 2.0 Frame”控件。 3. 将“Microsoft Forms 2.0 Frame”控件从工具箱中拖动到窗体设计器中。 4. 在窗体设计器中选中“Microsoft Forms 2.0 Frame”控件,然后打开属性窗口。 5. 在属性窗口中,设置“BorderStyle”属性为“None”,这样就可以隐藏控件的边框。 6. 在代码中,你可以使用以下代码来操作 Microsoft Forms 2.0 Frame 控件: ``` // 创建 Microsoft Forms 2.0 Frame 控件对象 AxHost.State state = new AxHost.State(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.axMsFormsFrame1 = new AxMSForms.AxFrame(); ((System.ComponentModel.ISupportInitialize)(this.axMsFormsFrame1)).BeginInit(); this.SuspendLayout(); // 设置 Microsoft Forms 2.0 Frame 控件的属性 this.axMsFormsFrame1.Enabled = true; this.axMsFormsFrame1.Location = new System.Drawing.Point(12, 12); this.axMsFormsFrame1.Name = "axMsFormsFrame1"; this.axMsFormsFrame1.OcxState = state; this.axMsFormsFrame1.Size = new System.Drawing.Size(260, 210); this.axMsFormsFrame1.TabIndex = 0; // 将 Microsoft Forms 2.0 Frame 控件添加到窗体中 this.Controls.Add(this.axMsFormsFrame1); ((System.ComponentModel.ISupportInitialize)(this.axMsFormsFrame1)).EndInit(); this.ResumeLayout(false); ``` 以上代码中,axMsFormsFrame1 是你在窗体设计器中添加的 Microsoft Forms 2.0 Frame 控件的名称,你可以根据自己的实际情况进行修改。 请注意,Microsoft Forms 2.0 Frame 控件需要在计算机上安装 Microsoft Office 才能使用。如果你的计算机上没有安装 Microsoft Office,你需要先安装 Microsoft Office 后才能使用 Microsoft Forms 2.0 Frame 控件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值