用自定义类.NET Winforms替换现有控件

时间:2011-02-16 12:59:06

标签: .net class controls

我有一个已经创建了大量控件的现有.NET应用程序。

现在我有一个新的自定义控件类 - 比如说 - 按钮(继承自“Button”),带有额外的属性,方法等。 编译好了,它显示在我的工具栏中。

我如何告诉VS我想用新的控件替换现有的控件?

我的意思是,如果我打开设计器代码并手动更改控件的类型,VS真的很不开心,设计会因为一个令人讨厌的错误消息而中断。

有没有办法在不破坏VS的设计的情况下更改设计器生成的代码?

或者除了手动删除每个控件并创建一个新控件之外,还有办法吗?这将是一个真正的麻烦,因为当我删除控件时,所有控件的处理程序将在表单的代码中被擦除。像:

处理myControl.Click ...处理myControl.MouseHover ...等。

欢迎提示!

2 个答案:

答案 0 :(得分:2)

完成程序如下。

进行备份!

转到解决方案资源管理器窗口(Ctrl Alt L是快捷方式),然后单击“显示所有文件”按钮。 选择要进行控制替换的表单。 在小三角形上显示“designer.vb”文件。

打开它。

搜索要替换的控件实例。 检查是否发生:

Me.ControlToBeReplaced = New System.Windows.Forms.TypeOfControlToReplace()

替换你的控制定义。 每次出现时都这样做:

Friend WithEvents ControlToBeReplaced As System.Windows.Forms.TypeOfControlToReplace

构建解决方案

答案 1 :(得分:0)

您可以在VS中搜索并替换“当前项目”范围。确保您已选中“搜索隐藏文本”框(这将包括设计器生成的代码)。然后尝试编译项目,如果有任何错误(例如缺少属性),那些错误可以以相同的方式更正。