想利用列表框来模拟一个弹出式菜单,可是如何定位列表框到鼠标的位置,如何让列表框失去焦点时隐藏呀?
---------------
1.实现当鼠标在表格上某处右击时,将列表框可见,并定位到鼠标指向的位置上,
关键是列表框的位置如何确定.
2.当用户没有点下列表框中的任意一项时,或用户在列表框外任意处单击一下时,让这个列表框隐藏起来,如何实现呀.我用lostfocus事件不起作用.
---------------
1.实现当鼠标在表格上某处右击时,将列表框可见,并定位到鼠标指向的位置上,
关键是列表框的位置如何确定.
2.当用户没有点下列表框中的任意一项时,或用户在列表框外任意处单击一下时,让这个列表框隐藏起来,如何实现呀.我用lostfocus事件不起作用.
打开界面,点击 menu editor,为这个界面添加菜单(一级菜单在这里是不显示的,在这个一级菜单下增加的子菜单将在菜单中显示)
下例:在form上单击鼠标右键完成时弹出菜单:
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
Me.PopupMenu mnuNew
End If
End Sub
菜单会自动跟随鼠标点击出现,并在菜单被选择或者鼠标点其他地方时自动消失
二级菜单是自己想要的菜单。Private Sub Command3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
PopupMenu mnuAddNew
End If
End Sub
-------------
谢谢,可是我试了,如果是mdi子窗体,虽然菜单隐藏了,但是打开窗本后,还是有的.而且把mdi父窗体给覆盖了.
---------------------
上一贴我回答的不准确,我又仔细看了下,原来主要原因是会影响到mdi父窗体中的菜单也不可见.
子菜单是不可见.可是mdi父窗体的菜单也没了.因为它会影响到mdi父窗体的菜单,所以这个问题解决不了.我想打开子窗体时,父窗体中的菜单不受影响.
Private Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
Form1.Move Me.Left + x, Me.Top + y, Form1.Width, Form1.Height
Form1.Show
End If
End SubLostFocus事件是可用的 我试了 没问题
Me.Hide
End Sub
Private Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
If Button = 2 Then
Form1.Move Me.Left + x, Me.Top + y, Form1.Width, Form1.Height
Form1.Show
End If
End SubLostFocus事件是可用的 我试了 没问题
------------------------
你的意思是用一个专门的窗体来放菜单,是这样吗?
可是这样的话,菜单项中的操作代码要写在有菜单的窗体上.可是代码中却要操作没有菜单的窗体,这涉及到两个窗体之间的操作,是这样吗?