窗体1上打开窗体2
show 1
窗体2可以使用右击菜单
在窗体1上打开窗体2,在窗体2上打开窗体3
show 1
窗体3无法调取右击菜单。窗体2.show 1窗体3.show 1甚至4-5的时候
3以后的所有窗体都无法使用右击菜单。若不使用show 1 而使用show去打开是可以用的。但是在运用软件的时候,若使用TAB切换,会知道窗体1覆盖到窗体2之上,导致乱了窗口顺序,导致数据传输失败或者无法互相传递更新。
若使用
窗体2.show
窗体1.Enabled=False
的话,那么TAB切换后,导致窗体1出现,窗体2覆盖,且,窗体1无法操作,认为假死。求助,如何在show 1的模式下调取右击菜单?

解决方案 »

  1.   

    'Form1 '
    '添加一个 CommandButton '
    '添加一个菜单命名为 mnuPopup,再加个菜单项 mnuHello '
    Option ExplicitPrivate Sub Command1_Click()
        Dim frm As Form1
        Set frm = New Form1
        frm.Left = Me.Left + 720
        frm.Top = Me.Top + 720
        frm.Show vbModal, Me
    End SubPrivate Sub Form_Load()
        Me.Caption = Hex(Me.hWnd) '区分实例'
    End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = vbRightButton Then
            '无论下面哪种弹出都没问题啊'
            'PopupMenu Form1.mnuPopup '始终弹出第一个窗体的菜单'
            PopupMenu Me.mnuPopup     '弹出当前的菜单'
        End If
    End SubPrivate Sub mnuHello_Click()
        MsgBox "hello @ " & Me.Caption
    End Sub
      

  2.   

    Private Sub Command1_Click()
        Form2.Show 1
    End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = 2 Then
            PopupMenu pop
        End If
    End Sub'---------------------------------------
    Private Sub Command1_Click()
        Form3.Show 1
    End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = 2 Then
            PopupMenu pop
        End If
    End Sub'---------------------------------------
    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = 2 Then
            PopupMenu pop
        End If
    End Sub的确能调出POPUPMENU,我程序可能那里出错了,唉,我再仔细检查检查,谢谢你
      

  3.   

    Private Sub Grid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = vbRightButton Then
            PopupMenu Me.AN1
            MsgBox Me.AN1.Caption
        End If
    End Sub如图所示,在第三个窗体以上,Popupmenu根本就没运行,用一个对话框来确认一下,发现代码右键被执行,但是弹出菜单直接忽略过去了,高手救命呀
      

  4.   

    你最后那个窗体右键是再数据库控件上右键的吧
    那你应该再那个数据库控件的MouseDown里操作啊
      

  5.   

    菜单只要失去焦点就会自动关闭。
    可能是你那个表格控件在右键事件中,发现自己不需要显示菜单,错误地直接把焦点设到自己身上,导致你 PopupMenu 出来的菜单直接被关闭。
    你只要放个 PictureBox 弹出右键菜单做个对比,就能确定是否是表格控件的问题了。