当前位置:  开发笔记 > 编程语言 > 正文

TabControl上下文菜单

如何解决《TabControl上下文菜单》经验,为你挑选了2个好方法。



1> BFree..:

不要在TabControl上设置contextMenuStrip属性.而是这样做.连接到tabControl的MouseClick事件,然后手动显示上下文菜单.只有在单击选项卡本身时才会触发,而不是实际页面.如果单击该页面,则tabControl不会收到Click事件,TabPage会执行.一些代码:

public Form1()
{
    InitializeComponent();
    this.tabControl1.MouseClick += new MouseEventHandler(tabControl1_MouseClick);
}

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        this.contextMenuStrip1.Show(this.tabControl1, e.Location);
    }


}



2> 小智..:

上下文菜单的打开事件可用于解决这两个问题

private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
{            
    Point p = this.tabControl1.PointToClient(Cursor.Position);
    for (int i = 0; i < this.tabControl1.TabCount; i++)
    {
        Rectangle r = this.tabControl1.GetTabRect(i);
        if (r.Contains(p))
        {
            this.tabControl1.SelectedIndex = i; // i is the index of tab under cursor
            return;
        }
    }
    e.Cancel = true;
}

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有