张光荣的正能量 [机械软件...改革利剑...向着改变世界...]

博客园 首页 新随笔 联系 订阅 管理

 

关于 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;
posted on 2021-08-09 22:24  张光荣的正能量  阅读(76)  评论(0编辑  收藏  举报