【C#】绘制给定屏幕坐标的高亮红框

其中x,y是给定的全局变量屏幕坐标,Paint事件中绘制的矩形坐标参数是窗体坐标,我们需要将屏幕坐标转成窗体坐标确保显示位置无误。

   		protected override void OnPaint(PaintEventArgs e)
        {

            Point clientPoint = this.PointToClient(new Point(x, y));
            int clientX = Math.Max(0, clientPoint.X); // 确保clientX不会小于0  
            int clientY = Math.Max(0, clientPoint.Y); // 确保clientY不会小于0
            //  调整矩形的宽度和高度以适应客户区  
            int adjustedWidth = Math.Min(width, this.ClientSize.Width - clientX);
            int adjustedHeight = Math.Min(height, this.ClientSize.Height - clientY)
            // 确保宽度和高度不为负数(这可能在x或y大于客户区大小时发生)  
            adjustedWidth = Math.Max(adjustedWidth, 0);
            adjustedHeight = Math.Max(adjustedHeight, 0);
            // 确保绘制的矩形宽高在屏幕范围内 
            Screen primaryScreen = Screen.PrimaryScreen;
            int Screenwidth = primaryScreen.Bounds.Width;
            int Screenheight
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sambolemon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值