繁体   English   中英

如何使Visual Studio中的Designer使用参数化构造函数生成组件

[英]How to make Designer in Visual Studio generate component using parameterize constructor

如何使Visual Studio使用带参数的构造函数生成代码?

例如:

添加ContextMenuStrip时,此代码行在MyForm.designer.cs中生成InitializeComponent()。

this.MyMenuStrip= new System.Windows.Forms.ContextMenuStrip(this.components);

使用dotPeek反映ContextMenuStrip不会给我任何有用的方式。

我想做一个自定义控件,当它放到任何System.Windows.Forms.Control时,设计器将调用参数构造函数,而不是无参数的控件。

有关Windows Forms设计时功能的MSDN页面上 ,似乎出现了一种特殊情况,该组件的构造函数采用IContainer作为参数。

组件可以通过实现采用IContainer类型的单个参数的公共构造函数,使设计者知道其容器消失时希望得到通知,如以下代码段所示:

class ClockComponent : Component {
    public ClockComponent(IContainer container) { 
        // Add object to container's list so that 
        // we get notified when the container goes away container.Add(this); 
    } 
    // ...
}

请注意,构造函数使用容器将自身添加为容器组件。 在存在此构造函数的情况下,设计人员将生成使用此构造函数的代码,并向其传递容器以供组件添加自身。

另外,请参阅MSDN上的.NET Framework可视设计器中的自定义代码生成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM