使用 Visual Studio Designer 时,如何将 WinForms 控件的类型更改为从原始类型派生的新类型?

How do you change the type of a WinForms control to a new type that is derived from the original type when using Visual Studio Designer?

我 built 几个用户控件使用了一些使用 Visual Studio Designer 的 GroupBox 对象,后来决定我希望能够控制 GroupBox 边框的颜色(您可以使用的功能似乎无法使用标准的 GroupBox)。所以我创建了一个新的自定义 GroupBoxPlus 控件,它继承自 GroupBox 并覆盖 OnPaint 来绘制我的边框。有没有办法使用 visual studio 设计器将我所有的 GroupBox 转换为 GroupBoxPlus 控件?如果我从代码中手动生成 uilding ui,我只会查找 GroupBox 并将其替换为 GroupBoxPlus,但由于我使用了设计器,我相信这样做会导致 Visual Studio 出错尝试编译时。除了删除旧的组框并将新的组框拖入并必须重新配置所有属性之外,还有其他方法可以转换它们吗?我正在使用 vb.net 和 winforms。

您只需替换您初始化组框的代码行。

而不是:

Dim groupBox as new GroupBox();

您可以将其更改为:

Dim groupBox as new GroupBoxPlus();

您只需搜索 'as new GroupBox();' 并替换为 'as new GroupBoxPlus()'。修改VS designer生成的代码不会在本例中出现问题。如果您执行“全部查找-替换”并且一切都不起作用,则按 Ctrl-Z 将撤消查找-替换功能更改的所有更改。

如果您真的担心进行大量查找替换,那么只需在替换之前复制您的代码文件或使用源代码管理。