如何将VS设计器中已生成的控件更改为从其他类继承



所以情况是这样的,

我有一个使用VSIDE(VS2013标准)创建的工具包。我已经做了很多工作,例如添加按钮,挂钩事件等。

现在,我可以将此控件更改为从自定义toolstrip类继承而不必创建自定义控件并重新执行所有工作吗?

我曾尝试将Designer.cs更改为使用父类,但当我返回到窗体设计器时,更改将被逆转。

编辑:

为了让事情更清楚一点,如果你熟悉xCode,我会尝试设置IDE对象的CustomClass。

如果您想更改myForm.Designer.cs,则

  1. 关闭设计器
  2. 更改*.Designer.cs private ParentToolStrip myToolStrip;中控件字段的类型
  3. 更改new命令myToolStrip = new ParentToolStrip();中的类型
  4. 构建项目
  5. 仅当生成成功时(!):在设计器中打开窗体

我已经做过很多次了。它有效。

确保检查任何可能干扰设计器的代码:

if (!DesignMode) {
    // Your code.
}

请注意,这在构造函数中不起作用,因为DesignMode属性当时尚未初始化。在构造函数中,你可以测试这样的设计模式:

bool designMode = LicenseManager.UsageMode == LicenseUsageMode.Designtime;

您想要的是视觉继承,您可以在这里找到它的详细描述:

https://msdn.microsoft.com/en-us/library/bx1155fz%28v=vs.110%29.aspx

最新更新