注册 登录
编程论坛 VB6论坛

子窗口的更新

linandceline 发布于 2018-12-07 12:01, 3302 次点击
父窗口下有很多子窗口
现在有一个MSGBOX,当MSGBOX点击后,
立即对当前的活动子窗口进行重加载
即执行form_load

有什么方法?
10 回复
#2
wds12018-12-07 13:23
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then '用户按下“是”按钮
    MyString = "Yes" '进行某些操作
Else '用户按下“否”按钮
    MyString = "No" '进行某些操作
End If
#3
linandceline2018-12-07 13:37
回复 2楼 wds1
我需要的是当前活动子窗体的重加载这部分。
判断这部分我会,并且我做的也不是yes+no的MSGBOX,只有vbok
#4
wds12018-12-07 14:25
你可以做一个public bz

每个子窗体bz不同,哪个是激活的bz=哪个
msgbox判断后直接激活对应bz的子窗体。


#5
linandceline2018-12-07 14:49
回复 4楼 wds1
这个也是我想到的办法,只是这个太过于繁复
如果我子窗体很多,那岂非用很多的case
有简便的方法么
#6
icecool2018-12-07 18:55
激活的窗体名都加入一个全局变量中,依次刷新!
unload时从全全局变量中删掉对应窗体名称
#7
ZHRXJR2018-12-08 09:07
程序代码:

If MsgBox("重新加载窗体!", vbOKCancel, "重新加载!") = 1 Then
    Unload Me
    Form1.Show
End If
'Form1.Show 就是重新启动窗体,运行 Form_Load 过程。

点击【确定】按钮立即重新加载,点击【取消】按钮不会重新加载。vbOKCancel 与 vbOK 均有【确定】与【取消】按钮。vbOKOnly 只有【确定】按钮。

#8
yingshu2018-12-08 09:25
Dim a(1) As Object
Dim i As Integer
Dim b As Integer

Private Sub Command1_Click()
    b = MsgBox("fdas", vbOKCancel, "dsa")
    For i = 0 To 1
        If b = vbOK Then
            a(i).Show
        Else
            Exit Sub
        End If
        b = 0
       b = MsgBox("fdas", vbOKCancel, "dsa")
    Next
End Sub

Private Sub Form_Load()
    Set a(0) = Form2
    Set a(1) = Form3
End Sub
随手做的一个,希望对你有帮助
vbok,只能依次显示或者中间退出,借用数组会轻松很多

[此贴子已经被作者于2018-12-8 09:27编辑过]

#9
风吹过b2018-12-10 10:18
程序代码:

'Form1 的代码,上面有二个按钮。第一个是开始测试,第二个是退出。
Option Explicit

Private Sub Command1_Click()
'加载窗体进行测试
Dim i As Long
Dim fr As Form2
For i = 1 To 5
    Set fr = New Form2
    fr.Timer1.Interval = Rnd() * 10000 + 1000
    fr.Timer1.Enabled = True
    fr.Caption = "F" & i
    fr.Show
Next i
End Sub

Private Sub Command2_Click()
'删窗体退出
Dim fr As Form
For Each fr In Forms
    Unload fr
Next
End Sub


程序代码:

'Form2代码,产生 MSBGOX 用的是定时器来产生
Option Explicit

Private Sub Timer1_Timer()

    MsgBox Timer1.Interval, vbOKOnly, Me.Caption        '提示

    Screen.ActiveForm.Print Me.Caption                  '在活动窗体上显示内容
   
    Dim fr As Form
    Form1.Print "当前活动窗口是:" & Screen.ActiveForm.Caption
    Set fr = Screen.ActiveForm              '直接给活动窗体
   
End Sub


1、VB6有窗体列表。
2、VB6有专门活动窗体对象。


[此贴子已经被作者于2018-12-10 10:21编辑过]

#10
linandceline2018-12-10 13:56
回复 9楼 风吹过b
Set Formonfocos = Me.ActiveForm
原来这句是关键,多谢

Public Function FormFresh()
  Set Formonfocos = Me.ActiveForm
  Unload Formonfocos
  Formonfocos.Show
  Set Formonfocos = Nothing
End Function
#11
linandceline2018-12-10 13:57
也多谢其他楼层的热心回复
1