以下是引用wube在2012-5-2 19:56:22的发言:
至于第4项也是难搞~
我知道.NET中Form已经包在里面了~
要用的时候再New一个就好~
只是我想要把原本已定义过的Form类~
以对象方式传递给其他自订函式调用~
不然有时很难做程序模组化~
代码太长看起来也很累人~
第4项算是找到答案了~不知到哪抓到的资料~类类类...累累累...
二.窗体之间的数据传输,
有时候我们想按下form1的BUTTON,改变form2的textbox.text。这在vb6中是很简单的,在写成form2.textbox.text=”xxxxx”的就行了,在vb7中却不能这样使用,这样有些麻烦,但却有利于封装性的产生。在大型的软件工程中,不至于因为类的相互紧密作用,导致调试的困难。例如一个窗体无法unload,我们无法确定是哪一个类的引用不当造成。
你可以写一个接口过程就像大部分丛vb6升级到vb7的软件那样。如:
Private Shared
m_vb6FormDefInstance As form1
Public Shared
Property DefInstance() As form1
Get
If m_vb6FormDefInstance Is Nothing Then
m_vb6FormDefInstance = New form1()
End If
DefInstance = m_vb6FormDefInstance
End Get
Set
m_vb6FormDefInstance = Value
End Set
End Property
这样在form2中你可以写form1.DefInstance.xxxx调用属性。这大概算是一种兼容的方法
实际上你应该这样写
在class form1中: Inherits System.WinForms.Form 一行的后面public fm as new form2
然后你可以像在vb6中一样,使用fm.visible=true载入窗体并在form1中控制他。
但是你却不能这样在form2中控制form1我想vb7是将form1作为默认的主窗体
应该在form2中这样写:Public fmm as system.winforms.form=form1
虽然vb7声称这样写等同于Public fmm as form1
但这样你会不成功。因为fmm的值为Null,如果使用 New form1那你会看到每调用一次会出现一个新的form1!!L
[
本帖最后由 wube 于 2012-5-2 22:30 编辑 ]