C/C++教程

关于 TabControl 获取 被鼠标右键的 TabPage 而编写的函数...

本文主要是介绍关于 TabControl 获取 被鼠标右键的 TabPage 而编写的函数...,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

关于 TabControl 获取 被鼠标右键的 TabPage 而编写的函数...

功能:

1.不需考虑 SizeMode 情况

2.可以获取通过鼠标右键点击的 Tab

3.且顺便返回鼠标左键点的 Tab

/// <summary>
/// 获取被鼠标点击的TabPage [包括鼠标右键]
///
/// 时间:2021/08/09 22:15:41
/// 适用:通用性
/// 测试:正确
/// </summary>
/// <param name="tc"></param>
/// <param name="e"></param>
/// <param name="clkTp"></param>
/// <returns></returns>
public static bool Clk(TabControl tc, MouseEventArgs e, out TabPage clkTp)
{
    clkTp = null;
    if (e.Button == MouseButtons.Left)
    {
        clkTp = tc.SelectedTab;
        return true;
    }

    bool bol = false;
    int cnt = tc.TabPages.Count;
    if (cnt < 1)
        return bol;
    
    Rectangle rect;
    int eY = e.Y;
    int eX = e.X;
    int i;
    cnt--;
    for (i = cnt; i > -1; i--)
    {
        rect = tc.GetTabRect(i);
        bol = rect.Contains(e.Location);
        if (bol)
            break;
    }

    if (i > -1)
    {
        clkTp = tc.TabPages[i];
        bol = true;
    }
    return bol;
}

交流 QQ : 2412366909@qq.com
手机号码:177-7499-4428

注:本人测试过程中暂未发现造成存取不正确的问题

 

 

    Rectangle rect;
这篇关于关于 TabControl 获取 被鼠标右键的 TabPage 而编写的函数...的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!