标题:子窗口的更新
只看楼主
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
结帖率:78.95%
已结贴  问题点数:20 回复次数:10 
子窗口的更新
父窗口下有很多子窗口
现在有一个MSGBOX,当MSGBOX点击后,
立即对当前的活动子窗口进行重加载
即执行form_load

有什么方法?
搜索更多相关主题的帖子: 子窗口 更新 MSGBOX 执行 方法 
2018-12-07 12:01
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then '用户按下“是”按钮
    MyString = "Yes" '进行某些操作
Else '用户按下“否”按钮
    MyString = "No" '进行某些操作
End If
2018-12-07 13:23
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
得分:0 
回复 2楼 wds1
我需要的是当前活动子窗体的重加载这部分。
判断这部分我会,并且我做的也不是yes+no的MSGBOX,只有vbok
2018-12-07 13:37
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
你可以做一个public bz

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


2018-12-07 14:25
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
得分:0 
回复 4楼 wds1
这个也是我想到的办法,只是这个太过于繁复
如果我子窗体很多,那岂非用很多的case
有简便的方法么
2018-12-07 14:49
icecool
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:20
帖 子:1214
专家分:1366
注 册:2005-3-14
得分:0 
激活的窗体名都加入一个全局变量中,依次刷新!
unload时从全全局变量中删掉对应窗体名称

http://toorup.3v.do
loading...
2018-12-07 18:55
ZHRXJR
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:125
帖 子:1034
专家分:5519
注 册:2016-5-10
得分:0 
程序代码:
If MsgBox("重新加载窗体!", vbOKCancel, "重新加载!") = 1 Then
    Unload Me
    Form1.Show
End If
'Form1.Show 就是重新启动窗体,运行 Form_Load 过程。

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


请不要选我!!!
2018-12-08 09:07
yingshu
Rank: 4
等 级:贵宾
威 望:10
帖 子:49
专家分:212
注 册:2018-7-24
得分:0 
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编辑过]

2018-12-08 09:25
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:20 
程序代码:
'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编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2018-12-10 10:18
linandceline
Rank: 2
等 级:论坛游民
威 望:2
帖 子:88
专家分:47
注 册:2014-12-19
得分:0 
回复 9楼 风吹过b
Set Formonfocos = Me.ActiveForm
原来这句是关键,多谢

Public Function FormFresh()
  Set Formonfocos = Me.ActiveForm
  Unload Formonfocos
  Formonfocos.Show
  Set Formonfocos = Nothing
End Function
2018-12-10 13:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-491882-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.399307 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved