我有一个已经创建了大量控件的现有.NET应用程序。
现在我有一个新的自定义控件类 - 比如说 - 按钮(继承自“Button”),带有额外的属性,方法等。 编译好了,它显示在我的工具栏中。
我如何告诉VS我想用新的控件替换现有的控件?
我的意思是,如果我打开设计器代码并手动更改控件的类型,VS真的很不开心,设计会因为一个令人讨厌的错误消息而中断。
有没有办法在不破坏VS的设计的情况下更改设计器生成的代码?
或者除了手动删除每个控件并创建一个新控件之外,还有办法吗?这将是一个真正的麻烦,因为当我删除控件时,所有控件的处理程序将在表单的代码中被擦除。像:
处理myControl.Click ...处理myControl.MouseHover ...等。
欢迎提示!
答案 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中搜索并替换“当前项目”范围。确保您已选中“搜索隐藏文本”框(这将包括设计器生成的代码)。然后尝试编译项目,如果有任何错误(例如缺少属性),那些错误可以以相同的方式更正。