【发布时间】:2013-06-04 17:25:21
【问题描述】:
我有一个自定义的TabControl,其中我有TabPages 和ContextMenu 绑定到它们。
我希望仅在单击页眉时显示菜单。
我所做的是,当点击 TabControl 时,我会检查这些条件:
private void MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == Mousebuttons.Right)
{
for (int i = 0; i < TabCount; ++i)
{
Rectangle r = GetTabRect(i);
if (r.Contains(e.Location) /* && it is the header that was clicked*/)
{
// Change slected index, get the page, create contextual menu
ContextMenu cm = new ContextMenu();
// Add several items to menu
page.ContextMenu = cm;
page.ContextMenu.Show(this, e.Location);
}
}
}
}
如果我将MouseUp 绑定到TabControl,我会在整个TabPage 中得到ContextMenu。如果我将它绑定到TabPage,我只会在正文中而不是在标题中获得ContextMenu。
有没有办法让 ContextMenu 只显示在标题 Click 上?
【问题讨论】:
-
MouseUp事件是连接到每个TabPage,还是连接到TabControl? -
MouseUp 连接到 TabControl。如果我将它连接到 TabControl,我会在整个标签页中获得 ContextMenu。如果我将它绑定到 TabPage,我只会在正文中而不是在标题中获得 ContextMenu。
标签: c# events contextmenu tabcontrol