关于 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;