以变量名来启动某个窗体,如何做到?

yjjsmile 2006-03-26 10:33:25
想在程序中启动某个表单,但表单的名字存在库中,取出后,如何来表达启动?谢谢!
...全文
274 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjjsmile 2006-03-30
  • 打赏
  • 举报
回复
谢谢了!
homezj 2006-03-28
  • 打赏
  • 举报
回复
//不建议用这个api,这个api不能脱离vb的ide
同意!以前论坛中多次遇过这个问题,教训深刻!
AIRFLYNET 2006-03-27
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As String
a = "form2"
Dim myForm As Form
Set myForm = Forms.Add(a)
myForm.Show
End Sub
laviewpbt 2006-03-27
  • 打赏
  • 举报
回复
果然
ZOU_SEAFARER 2006-03-27
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim Str_Form As String
Str_Form = "formxx"
Dim myForm As Form
Set myForm = Forms.Add(Str_Form)
myForm.Show
End Sub
rainstormmaster 2006-03-27
  • 打赏
  • 举报
回复
//也可以用 EbExecuteLine API函数来做

不建议用这个api,这个api不能脱离vb的ide
viena 2006-03-27
  • 打赏
  • 举报
回复
//如果可能的话,应当尽量避免这种情况。
同意!

可以在模块中用一个巨大的Select Case来就行控制,这样清楚一些
900126 2006-03-27
  • 打赏
  • 举报
回复
如果可能的话,应当尽量避免这种情况。
羽毛之家 2006-03-27
  • 打赏
  • 举报
回复
顶上面的。基本上就可以实现了1
faysky2 2006-03-27
  • 打赏
  • 举报
回复
也可以用 EbExecuteLine API函数来做:

Option Explicit

Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long

Public Function ExecuteLine(sCode As String, Optional fCheckOnly As Boolean) As Boolean
ExecuteLine = EbExecuteLine(StrPtr(sCode), 0&, 0&, Abs(fCheckOnly)) = 0
End Function

'传入的参数:strFormName为窗体类型名称
Public Function ShowForm(ByVal strFormName As String)
ExecuteLine "Dim fForm1 As " & strFormName
ExecuteLine "set fForm1 = new " & strFormName
ExecuteLine "fForm1.Show " '显示窗体
' ExecuteLine "Unload fForm1" '卸载窗体
End Function

Private Sub Command1_Click()
Dim f As String
f = "Form2"
Call ShowForm(f)
End Sub
northwolves 2006-03-26
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=197683

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧