以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义控件鼠标右键菜单代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60408)

--  作者:jswalley
--  发布时间:2014/11/24 15:26:00
--  自定义控件鼠标右键菜单代码

一般控件右键弹出菜单的代码是
If e.Button = MouseButtons.Right Then \'假定按下的是鼠标右键
    ContextMenus(
"快捷菜单名").Show(e.Sender,e.x,e.y) \'则在鼠标位置显示快捷菜单
End
 
If

如果是自定义控件,对应的事件函数是

Public Sub XXXX_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
ContextMenus("快捷菜单名").Show(sender,e.x,e.y) \'则在鼠标位置显示快捷菜单
End if
提示 sender出错。Show的第一个参数应该用什么呢?

--  作者:有点甜
--  发布时间:2014/11/24 15:29:00
--  

 自定义的控件不能用此方法 ContextMenus("快捷菜单名").Show(sender,e.x,e.y)

 

 只用foxtable的 Winform.Control 系列才能用。


--  作者:jswalley
--  发布时间:2014/11/24 15:33:00
--  
有没有其他办法呢?
--  作者:有点甜
--  发布时间:2014/11/24 15:35:00
--  
 没有。
--  作者:有点甜
--  发布时间:2014/11/24 15:38:00
--  
 反正想办法在winform的某一控件中显示快捷菜单就行。
--  作者:jswalley
--  发布时间:2014/11/24 16:18:00
--  
另外一个问题 增加的控件,窗口认不到,在窗口事件MouseDown事件中  e.Sender.Name检测不到新增的控件。 这个有没有办法? 
--  作者:有点甜
--  发布时间:2014/11/24 16:29:00
--  

 只有foxtable的控件,才认

 

 http://www.foxtable.com/help/topics/1409.htm