加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在vb.net中引用未安装的对象

发布时间:2020-12-17 07:20:37 所属栏目:百科 来源:网络整理
导读:嗨,我不得不学习VB.net以获得一份以前曾经是C#的新工作.我刚刚遇到了VB.net的一个有趣的功能.我可以引用尚未实例化的第二个表单上的对象! 所以从Form1我可以在Form2上获得textbox1的text属性,如下所示 Dim txt As String = Form2.TextBox1.Text 谁能解释一
嗨,我不得不学习VB.net以获得一份以前曾经是C#的新工作.我刚刚遇到了VB.net的一个有趣的功能.我可以引用尚未实例化的第二个表单上的对象!

所以从Form1我可以在Form2上获得textbox1的text属性,如下所示

Dim txt As String = Form2.TextBox1.Text

谁能解释一下这是如何工作的?是否所有表格都在程序开始时进行了实例化,然后在程序生命周期内切换了它们的可见性?

解决方法

VB中的表单是一种特殊情况.编译器在My命名空间的 My.Forms object中生成强类型的表单列表.每个表单都作为属性My.Forms.TheNameOfTheForm公开.这些属性总是返回有效的实例 – 即如果之前没有实例化表单,它将在您第一次使用该属性时.

到现在为止还挺好.

但是默认情况下,微软还做出了从My.Forms对象导入属性的大脑死亡(!)决定,并且你无能为力.从表面上看,这是出于向后兼容性的原因而VB6,但这是无稽之谈,因为VB7(.NET 1.0)没有这个功能,它只是后来才出现.

但只是为了澄清:

Are all forms instatiated at the start of the program …?

不,幸运的是没有.它们在您第一次访问该属性时被实例化.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读