问一下大家遇到这种窗口是怎么做的:
主窗口需要某几个用户的输入值,因此就使用一个弹出的窗口来接受用户的输入,但是用户在新窗口中输入的值怎么返回到主窗口中呢?
我以前是弄了几个全局变量来传这个值,不知道有没有更自然一点的方法?
主窗口需要某几个用户的输入值,因此就使用一个弹出的窗口来接受用户的输入,但是用户在新窗口中输入的值怎么返回到主窗口中呢?
我以前是弄了几个全局变量来传这个值,不知道有没有更自然一点的方法?
public a as integer在其他窗体中使用时:
frmmain.a来判断就可以了。这样的做法无非就是更加明了,其实实质上和使用全局的变量是没有区别的。当然你也可以使用Public Property来实现,使用方法雷同。
假设主窗口为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引用
主窗体: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----------------------------------------------楼主,怎么样?这回明白了吧??
给分吧~~哈哈,谢谢先
也就是像 Gutta(冯大狂)说的那样,在frmMain的模块过程中声明一个public变量,这个变量只要是frmMain没泄载,都可以访问,跟frmPop没关系了,只在你在frmPop_unload的时候把值传给这个变量就行了
其实我之所以为这个问题,主要还是因为不想在窗口中弄一大堆全局的变量
Gutta(冯大狂) 的那个主要意思就是说模态对话框,最后还是用的全局变量解决的问题再等一下午,如果还没有更好的方案就给分
======================================================================
那时我把你的frmmain.a看错了,以为你说的是对话框里面的a,呵呵,不过还是感谢你把代码也贴出来了
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(无业游民)所谓的第三种方法不就是我的第一种方法吗??
晕~~