重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这期内容当中小编将会给大家带来有关VB6.0中怎么实现多窗体交互,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站公司2013年成立,公司自成立以来始终致力于为企业提供官网建设、移动互联网业务开发(小程序开发、手机网站建设、app开发定制等),并且包含互联网基础服务(域名、主机服务、企业邮箱、网络营销等)应用服务;以先进完善的建站体系及不断开拓创新的精神理念,帮助企业客户实现互联网业务,严格把控项目进度与质量监控加上过硬的技术实力获得客户的一致赞誉。
1、保持窗体引用的全局性
前面提到,进行 .NET 窗体编程时应该牢牢把握下列原则:在访问窗体之前,你必须进行窗体实例化;如果在项目中有多处代码访问同一窗体,则你必须把它的同一实例指针传递给这些代码。对于早已习惯了直接把默认窗体实例当成全局变量来使用的VB6.0程序员来说,这可是个严重的挑战。好在 .NET 为你提供了两条出路:其一,把窗体实例指针保存在全局变量中;其二,把窗体实例指针传递给任何需要访问它的窗体、类、模块或者过程。
2、.NET 中的数值全局化
我以前曾经指出,Visual Basic .NET 不支持全局变量,现在我又要说,在 .NET 中可以在某种程度上实现数值全局化。这算不算此一时,彼一时?不,我不是那种人。Visual Basic .NET 确实不支持全局变量,然而它借助 Shared (相当于 C# 中的 static) 变量却能模拟全局变量。事实上,前面介绍的 Visual Basic 升级向导自动添加到窗体代码中的 DefInstance 属性就是 Shared 类成员。无论容纳 DefInstance 属性的窗体类是否已经实例化,它都能被项目中的任何代码所引用。象这样的 Shared 属性不就相当于全局变量吗?因此,你可以创建这样的类:
Public Class myForms Private Shared m_CustomerForm As CustomerForm Public Shared Property CustomerForm() As CustomerForm Get Return m_CustomerForm End Get Set(ByVal Value As CustomerForm) m_CustomerForm = Value End Set End Property End Class
你需要在***实例化一个窗体时,把该窗体的实例保存到一个类中:
Dim myNewCust As New CustomerForm() myNewCust.Show() myForms.CustomerForm = myNewCust
这里的 CustomerForm 属性值就是你的窗体实例。于是,其它代码就能从项目的任何地方通过它来间接访问你的窗体了:
Module DoingStuffWithForms Sub DoExcitingThings() myForms.CustomerForm.Text = _ DateTime.Now().ToLongTimeString End Sub End Module
像这样把窗体实例保存为属性值就能按照你的要求模拟VB6.0中的全局变量。如此模拟的“全局变量”其作用域比类域 (class scope) 高一个层次。所谓类域,是指变量仅仅在定义它的类(确切地说,应该包括模块、类或窗体)中有效。比类域还低一层次的是过程域 (procedure scope),即变量仅仅在定义它的例程中有效。
上述就是小编为大家分享的VB6.0中怎么实现多窗体交互了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。