尽量丢掉vb6的习惯,注意对象的作用域及垃圾回收机制,为对象设定适当的范围,如全局对象下面给个示例(从sub main启动):public module sample public sub main() dim frm as new from1("sample form") frm.show windows.forms.application.run() end subend module public class form1 inherts windows.forms.form private btnnew as new windows.forms.button private btnclose as new windows.forms.button public sub new(byval text as string) me.text=text btnnew.text="new form" btnclose.text="exit" btnnew.location=new drawing.point(30,10) btnclose.location=new drawing.point(30,35) me.controls.add(btnnew) me.controls.add(btnclose) addhandler btnnew.click,addressof btnnew_click addhandler btnclose.click,addressof btnclose_click end sub private sub btnnew_click(byval o as object,byval e as eventargs) me.close() dim newform as new form1("new sample form") newform.show() end sub private sub btnclose_click(byval o as object,byval e as eventargs) windows.forms.application.exit() end subend class
创新互联从2013年成立,先为朗县等服务建站,朗县等地企业,进行企业商务咨询服务。为朗县企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
1.开始--运行--regedit 打开注册表
2.在注册表里面搜索vb ,删除所有关于vb的东东.
3.重新启动计算机
之后再试一试
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is PictureBox Then
Me.Controls.Remove(ctrl)
ctrl = Nothing
End If
Next
由于你要求的是能够动态的加载与卸载,所以这里选用了appdomain的load方法来加载一个程序集(同样的,卸载的时候调用appdomain的静态方法Unload即可).
另外由于,在appdomain.load的时候remoting会试图将程序集序列化到defaultdomain中去,这会产生问题,通常以一个"FileNotFoundException"结束,因此采用了一种折中的办法.
思路如下:
1.建立一个新的程序集,里面包含一个轻量的类型,这个类型只包含一个用来加载程序集的公共方法;
2.在你的主程序里面,用appdomain.load来加载上一步的程序集,接着实例化上一步的轻量的类型;
3.而后就可以像操作通常的对象一样,调用它上面的方法来加载你想要的程序集了;
源代码已经打包发给你了,
你看看吧~
如果有问题,再找我哈
vb.net会在系统里.net,要想手工删除几乎是不可能的,建议你还是原有的反安装程序来卸载。
VB.net 加载窗体 form2.show() 卸载窗体 me.close()加载窗体和VB没啥区别,而卸载就截然不同了。附:VB 加载窗体 form2.show 卸载窗体 unload me
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款