winfrom右键获取鼠标位置并弹出菜单栏(如何计算鼠标相对位置)

我用的是richTextBox控件的MouseDown事件做的案例

 /// <summary>
        /// 鼠标右击弹出菜单栏
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void richTextBox1_MouseDown(object sender, MouseEventArgs e)
        {
            //判断鼠标右击
            if (e.Button==MouseButtons.Right)
            {
                //获取richTextBox1在屏幕上的坐标
                var rtbLocation = PointToScreen(richTextBox1.Location);
                //鼠标在屏幕上的坐标 -  richTextBox1在屏幕上的坐标 = 鼠标在richTextBox1上的坐标。
                int relativeX = MousePosition.X - rtbLocation.X ;
                int relativeY = MousePosition.Y - rtbLocation.Y;
                //设置panel弹框位置
                panel_operationRichTextBox.Location = new Point(relativeX - 30, relativeY + 25);//敲重点 -30,+25,是视觉发现误差(误差原因:此界面左上角灰色那里),学习的请自动忽略此处误差
                //显示出操作菜单panel
                panel_operationRichTextBox.Show();
            }
        }

有疑问联系qq757057797

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值