当前位置:编程学习 > VB >>

如何根据字符串变量的值,调用对应的窗体?

程序中:
public strFrm as string

strFrm="FORM1"


调用处理函数
void displayFrm(byval strFrm as string)
{
//需要功能:
//如果strFrm="FORMx"
//则调用FORMx.show 1
}

由于字符串strFrm取值太多,使用select case语句不方便灵活。如何能简单直接的根据字符串str的值,直接调用str.show 1?

请各位高手帮忙,谢谢!
--------------------编程问答-------------------- http://bbs.csdn.net/topics/40023651 --------------------编程问答--------------------
Private Sub Command1_Click()
    Dim F As Form
    Dim StrFrm As String
    StrFrm = "3"
    Set F = Forms.Add("form" & StrFrm)
    F.show   '显示Form3
End Sub
--------------------编程问答-------------------- 先做准备工作
dim col as new collection

form_load或者sub main 中
col.add form1,"form1"
col.add form2,"form2"
col.add form3,"form3"
col.add formn,"formn"


调用的时候
dim f as form

set f=col(form_name)
f.show

--------------------编程问答-------------------- 怎么没人问,楼主那个既像C#又像VB的displayFrm是什么东东啊 --------------------编程问答--------------------
引用 4 楼 bcrun 的回复:
怎么没人问,楼主那个既像C#又像VB的displayFrm是什么东东啊

displayFrm是我自己编的过程的名称。我需要请教大家,如何简单实现这个过程。。。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
http://bbs.csdn.net/topics/40023651

看版主的帖子,似乎没有很直接的方法。 --------------------编程问答--------------------
引用 5 楼 stevenuserregister 的回复:
引用 4 楼 bcrun 的回复:怎么没人问,楼主那个既像C#又像VB的displayFrm是什么东东啊
displayFrm是我自己编的过程的名称。我需要请教大家,如何简单实现这个过程。。。


我是奇怪你这个displayFrm为什么把两种语言混合在一起还能运行的。另外2楼的代码应该接近你的需求吧 --------------------编程问答--------------------

我是奇怪你这个displayFrm为什么把两种语言混合在一起还能运行的。另外2楼的代码应该接近你的需求吧

这段时间,VC、VB都在用,有时候没注意细节。。。 --------------------编程问答--------------------


Private Sub Form_Load()
showform "formx"
End Sub
Sub showform(name As String)
Dim a As Form
For Each a In Forms
        If a.name = name Then
                a.Show
                Exit Sub
        End If
Next
On Error GoTo errH
Set a = Forms.Add(name)
a.Show
Exit Sub
errH:
        MsgBox "不存在" & name & "窗体"
End Sub
--------------------编程问答--------------------
引用 9 楼 spt_petrolor 的回复:
Visual Basic code
?



1234567891011121314151617181920

Private Sub Form_Load() showform "formx"End SubSub showform(name As String) Dim a As Form For Each a In Forms         If a.name = name Th……


使用以下形式打开的窗口呢?怎么办?

dim f as new formX
f.show

--------------------编程问答--------------------
引用 10 楼 worldy 的回复:
使用以下形式打开的窗口呢?怎么办?

dim f as new formX
f.show

LZ要的是用窗体名字符串得到窗体,哥们你这是做嘛?
你都知道窗体类名石formx了,你问什么?

说实话你明白前期绑定和后期绑定吧 --------------------编程问答--------------------
引用 楼主 stevenuserregister 的回复:
程序中:
public strFrm as string

strFrm="FORM1"


调用处理函数
void displayFrm(byval strFrm as string)
{
//需要功能:
//如果strFrm="FORMx"
//则调用FORMx.show 1
}

由于字符串strFrm取值太多,使用select case……



可以这么a.show么??

引用 9 楼 spt_petrolor 的回复:
Visual Basic code?123456789101112131415161718Private Sub Form_Load()showform "formx"End SubSub showform(name As String)Dim a As FormFor Each a In Forms        If a.name = name Then       ……


不能够吧?? --------------------编程问答-------------------- 错了 没看到后来set了 。
补充:VB ,  基础类
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,