问一下大家遇到这种窗口是怎么做的:
    主窗口需要某几个用户的输入值,因此就使用一个弹出的窗口来接受用户的输入,但是用户在新窗口中输入的值怎么返回到主窗口中呢?
    我以前是弄了几个全局变量来传这个值,不知道有没有更自然一点的方法?

解决方案 »

  1.   

    在主窗体中声明一个Public的变量
    public a as integer在其他窗体中使用时:
    frmmain.a来判断就可以了。这样的做法无非就是更加明了,其实实质上和使用全局的变量是没有区别的。当然你也可以使用Public Property来实现,使用方法雷同。
      

  2.   

    好多办法啊:
    假设主窗口为frmMain,弹出窗口为frmPop,frmPop中有一个textBox:txt1:如果是要把txt中的值显示到frmMain中的标题可以这样:
    sub frmPop_unload()    
        frmMain.caption=frmpop.txt.text
    end sub2:如果要暂时保存到frmMain中的话,Form有一个tag属性,可以用来保存程序运行时的临时数据,代码:
    sub frmPop_unload()    
        frmMain.tag=frmpop.txt.text
    end sub
    要用的时候,直接用frmMain.tag引用
      

  3.   

    晕,看来楼主一定要给代码才会明白...
    主窗体:frmmain
    Public a as integerPrivate sub Command1_Click()
     frmsub.show vbmodal   '模态对话框,直到返回才会执行下一句
     Select case a
     case 1
      msgbox "传递参数a为1"
     case 2
      msgbox "传递参数a为2"
     case else
       msgbox "传递参数a为其他"
     end select
    End Sub次窗体:frmsub
    Private sub Command1_Click()
      frmmain.a = 1          '传递一个值给主窗体
      unload me
    end sub----------------------------------------------楼主,怎么样?这回明白了吧??
    给分吧~~哈哈,谢谢先
      

  4.   

    第三种方法:
    也就是像 Gutta(冯大狂)说的那样,在frmMain的模块过程中声明一个public变量,这个变量只要是frmMain没泄载,都可以访问,跟frmPop没关系了,只在你在frmPop_unload的时候把值传给这个变量就行了
      

  5.   

    哎,yuyes(无业游民) 说了半天还是和全局变量差不多,只不过那个变量直接写在主窗口里面罢了
    其实我之所以为这个问题,主要还是因为不想在窗口中弄一大堆全局的变量
    Gutta(冯大狂) 的那个主要意思就是说模态对话框,最后还是用的全局变量解决的问题再等一下午,如果还没有更好的方案就给分
      

  6.   

    那个对话框关闭了也同样可以访问吗?我就是担心关闭了就访问不了了
    ======================================================================
    那时我把你的frmmain.a看错了,以为你说的是对话框里面的a,呵呵,不过还是感谢你把代码也贴出来了
      

  7.   

    第二种给你例子,使用Property来实现(个人感觉不如第一种)Dim m_a As Integer         '当前单词索引Public Property Let A(ByVal v_a As Integer)
        m_a = v_a
    End PropertyPublic Property Get A() As Integer
        A = m_a
    End Property这些都声明在frmmain的通用部分
    然后可以直接把A作为frmmain的一个属性来使用了,就如同frmmain.caption一样
    用frmmain.a=...来敷值
    再用 B=frmmain.a  来获得a的值
    -------------------------------yuyes(无业游民)所谓的第三种方法不就是我的第一种方法吗??
    晕~~