两个方法. 方法1.在你的函数中用Optional加多一个参数, 例如你以前的函数是: public function abc(msg as string) as string 你就改为 public function abc(msg as string,Optional myform as form) as string 这样的话,你加的这个参数就是可选的了,你以前用用一个参数也可以调用,不用改以前的调用方法了 方法2. 在模块中定义一个全局量,如:public myform as form然后在所有窗口的Activate事件中写代码. Private Sub Form_Activate() myform = Me End Sub ,这样的话,你每次调用的那个myform 就是当前的活动窗口了
楼上说的两种方法也试过,但还有些问题,后来就放弃了,还望具体指点: 方法1 还是要传参数的,但函数内如何判断,该参数传了没有,如没有设定默认窗体 方法2 使用时出错,Frmform = Me 说该方法使用不当
1.Public Function abc(msg As String, Optional myform As Form) If myform Is Nothing Then msgbox "没有" Else MsgBox myform.Name End If End Function 2.要这样. set Frmform = Me
模块中这样写 Public Sub SubFrom(WinFrom as Object) Msgbox WinFrom.Name End Function窗体中写:Private Sub Command1_Click() SubFrom Me ' 或者 dim frm as From1 set frm=new from1 call frm End Sub
Public Function add(frm As Form)
MsgBox frm.Caption
End Function
例如左右结构的时候,点左边导航栏时,将打开的窗体名赋给一个变量,函数每次只用判断这个变量就可以了。
..
End Functionform里调用函数时这样写:private sub form_load()
fun me
...
end sub
Public Sub CallFrom(frmCur As Object)
frmCur.Hide
End Function窗体中写:
Option ExplicitPrivate Sub Command1_Click()
CallFrom Me
End Sub
难道必须
将form 作为参数传于,
或传标志字符串
两种方法,才能在模块的函数中使用原窗体对象,设定其visiable属性。
我因为是对以前函数改照,地方较多,想只修改共同函数。
所以,有没类似指针,或得到当前程序活动窗体的方法?
方法1.在你的函数中用Optional加多一个参数,
例如你以前的函数是:
public function abc(msg as string) as string
你就改为 public function abc(msg as string,Optional myform as form) as string
这样的话,你加的这个参数就是可选的了,你以前用用一个参数也可以调用,不用改以前的调用方法了
方法2.
在模块中定义一个全局量,如:public myform as form然后在所有窗口的Activate事件中写代码.
Private Sub Form_Activate()
myform = Me
End Sub
,这样的话,你每次调用的那个myform 就是当前的活动窗口了
方法1 还是要传参数的,但函数内如何判断,该参数传了没有,如没有设定默认窗体
方法2 使用时出错,Frmform = Me 说该方法使用不当
If myform Is Nothing Then
msgbox "没有"
Else
MsgBox myform.Name
End If
End Function
2.要这样.
set Frmform = Me
Public Sub SubFrom(WinFrom as Object)
Msgbox WinFrom.Name
End Function窗体中写:Private Sub Command1_Click() SubFrom Me '
或者
dim frm as From1
set frm=new from1
call frm
End Sub