教程集 www.jiaochengji.com
教程集 >  脚本编程  >  Asp.net  >  正文 .NET 窗体之间的交互

.NET 窗体之间的交互

发布时间:2018-10-13   编辑:jiaochengji.com
教程集为您提供.NET 窗体之间的交互等资源,欢迎您收藏本站,我们将为您提供最新的.NET 窗体之间的交互资源
进行 .NET 窗体编程时应该牢牢把握下列原则:在访问窗体之前,你必须进行窗体实例化;如果在项目中有多处代码访问同一窗体,则你必须把它的同一实例指针传递给这些代码。对于早已习惯了直接把默认窗体实例当成全局变量来使用的 Visual Basic 6.0 程序员来说,这可是个严重的挑战。好在 .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
象这样把窗体实例保存为属性值就能按照你的要求模拟 Visual Basic 6.0 中的全局变量。如此模拟的“全局变量”其作用域比类域 (class scope) 高一个层次。所谓类域,是指变量仅仅在定义它的类(确切地说,应该包括模块、类或窗体)中有效。比类域还低一层次的是过程域 (procedure scope),即变量仅仅在定义它的例程中有效。

您可能感兴趣的文章:
.NET 窗体之间的交互
在同一窗体中使用PHP来处理多个提交任务
关于Visual Basic 2005窗体互访技术的思索
解析jquery获取父窗口的元素
JS父子窗口相互取值与赋值的方法参考
.net窗体之间传值几种方法详解
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
ASP.NET 入门的五个步骤
创建分布式应用程序学习心得
《Perl编程24学时教程》笔记第24课 建立交互式Web站点

[关闭]
~ ~