Irgendwie versteh ich das nicht: Wenn ich ein gebundenes Formular über ein Popupmenü öffne, kann ich dadrin kein Popupmenü mehr anzeigen. Es tut sich einfach nix, gibt aber auch keinen Fehler.
Wenn ich das gleiche statt über ein Popupmenü über einen Button mache, funktioniert´s.
Mach ich da was falsch, oder ist das einfach ein VB-Bug - oder gar ein Feature, das ich mal wieder nicht verstehe?
Hurra,
endlich einer, der die selben Probleme hat wie ich!!!
Keine Ahnung warum es so ist, aber solange das Programm in der PopupMenu()-Funktion steckt, kannst Du kein zweites mehr Aufrufen.
Daher habe ich folgendes gebastelt:
(die Sache hat nur einen Haken: Du kannst das Menü leider nicht verstecken, weil Du es sonst nicht ansprechen kannst - für eine Lösung wäre ich dankbar!!)
***********************************************
Public Declare Function GetCursorPos Lib „user32“ (lpPoint As POINTAPI) As Long
Public Declare Function TrackPopupMenu Lib „user32“ (ByVal hMenu As Long, ByVal wFlags As Long, ByVal X As Long, ByVal Y As Long, ByVal nReserved As Long, ByVal hWnd As Long, lprc As Long) As Long
Public Declare Function GetSubMenu Lib „user32“ (ByVal hMenu As Long, ByVal nPos As Long) As Long
Public Declare Function GetMenu Lib „user32“ (ByVal hWnd As Long) As Long
Public Type POINTAPI
X As Long
Y As Long
End Type
Public Sub myPopupMenu(Frm As Form, lngMenuPos)
Dim p As POINTAPI
***********************************************
Aufgerufen wird das ganze dann so:
Call myPopupMenu(Me, 0)
***********************************************
aber ich habe folgender Lösungs-Hack-Vorschlag für dich:
(form1 erstellen. Vb beenden.
Mit Texteditor Form1.frm öffen und diesen Code hineinkopieren und alten ersetzen)
sag mir ob das eine lösung für dich ist.
gruss, Giuseppe
VERSION 5.00
Begin VB.Form Form1
Caption = „Form1“
ClientHeight = 4110
ClientLeft = 60
ClientTop = 345
ClientWidth = 5985
LinkTopic = „Form1“
ScaleHeight = 4110
ScaleWidth = 5985
StartUpPosition = 3 'Windows-Standard
Begin VB.Timer tmr1
Enabled = 0 'False
Interval = 100
Left = 2400
Top = 1800
End
Begin VB.Menu a
Caption = „a“
Visible = 0 'False
Begin VB.Menu b
Caption = „b“
End
End
End
Attribute VB_Name = „Form1“
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private Sub b_Click()
tmr1.Enabled = True
End Sub
Private Sub Form_Click()
PopupMenu a
End Sub
Private Sub tmr1_Timer()
Dim x As Form1
Set x = New Form1
Load x
x.Show vbModal