TabControl的菜单

使用TabControl的情况下,有时候需要用到上下文菜单,控件里提供了ContextMenuStrip属性,但是要让不同的部分(head和Client)显示不同的菜单,就要改变思路了。

网上提供了方法:捕获TabControl的MouseUp,在里面判断鼠标按键。这个方法可以使在TabPage中包含其它控件(窗体或容器,且其Dock为Fill)时,只在TabHead部分响应。

这里主要补充说明一下:

  1. 当TabControl中没有显示任何Page的时候,整个TabControl将被视为Head部分,会响应MouseUp,这时应当在处理时加上对TabControl.TabPages.Count的判断;
  2. 关于菜单的显示位置,可以在事件函数中获取相对坐标,需要在ContextMenuStrip.Show中使用签名为Control + Point的重载,以指定坐标所在的控件,否则将显示在主窗体的级别。

reload note: 2010-05-20

http://blog.renren.com/blog/bp/Qm0ndCISvl

你可能感兴趣的:(TabControl的菜单)