新人求助vb MDI子窗体zorder闪烁问题

piaoyimoshi 2015-01-25 06:12:59
新人求助vb 软件,用了MDI做父窗体,然后代码如下

load form1

form1.show

form1.zorder

我有好多个MDI子窗体,每个子窗体都设置了初始最大化,当累积打开多个子窗体时,无法再切换到之前打开过的窗体,然后我又不想关闭之前的窗体,于是我用了zorder属性,但是问题来了,每次切换时,窗口似乎会先Nomal,然后再MAX。因此打开瞬间会“闪一下边框再最大化”,有没有办法解决呢,最好隐藏他最大化的过程,求助达人,O(∩_∩)O谢谢
...全文
330 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一如既往哈 2015-01-28
  • 打赏
  • 举报
回复
在那个form1上添加一个名称为lab的label控件。
一如既往哈 2015-01-28
  • 打赏
  • 举报
回复
好像用LockWindowUpdate没有效果。其实可以不用LockWindowUpdate的。 请参考下面的代码:
''这个代码不闪!!!
Option Explicit
Private mFrm(3) As Form1
Private Sub Command1_Click(Index As Integer)
    If Index = CInt(Me.Tag) Then Exit Sub
    With mFrm(Index)
        .Move 0, 0, Me.Width, Me.Height
        .WindowState = 2
        .Show
    End With
    With mFrm(CLng(Me.Tag))
        .WindowState = 0
        .Hide
    End With
    Me.Tag = CStr(Index)
End Sub
Private Sub MDIForm_Activate()
    With mFrm(0)
        .Show
        .WindowState = 2
        Me.Tag = "0"
    End With
End Sub
Private Sub MDIForm_Load()
    Dim i As Integer
    For i = 0 To 3
        Set mFrm(i) = New Form1
        mFrm(i).Lab.Caption = "Form1--" & i
    Next
End Sub


测试窗体控件:1个MDIForm1、一个Form1(mdichild=true)、一个picturebox、command1(0~3)以控件数组的形式存在于picturebox中。
一如既往哈 2015-01-28
  • 打赏
  • 举报
回复
大侠们都不出手,那就试试老百姓的土法: 试试无边框的子窗体,用move方法调整大小和位置,这个肯定不会闪!
piaoyimoshi 2015-01-28
  • 打赏
  • 举报
回复
我顶!!!!
Tiger_Zhao 2015-01-28
  • 打赏
  • 举报
回复
Private Declare Function LockWindowUpdate Lib "user32.dll" (ByVal hwndLock As Long) As Long

LockWindowUpdate MDIForm1.hWnd
Form1.Show
Form1.ZOrder
LockWindowUpdate 0

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧