我用的是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