private const int MK_SHIFT = 4;
private const int WM_RBUTTONUP = 517;
private const int WM_LBUTTONUP = 514;
private const int WM_LBUTTONDOWN = 513;
private const int WM_RBUTTONDOWN = 516;
private void Application_PreTranslateMessage(object sender, PreTranslateMessageEventArgs e)
{
var wp = e.Message.wParam.ToInt64();
if (e.Message.message == WM_RBUTTONDOWN && (wp != 6 && wp != MK_SHIFT))
{
e.Handled = true;
}
if (e.Message.message == WM_RBUTTONUP && wp != MK_SHIFT)
{
Application.PreTranslateMessage -= Application_PreTranslateMessage;
e.Handled = true;
Application.DocumentManager.MdiActiveDocument.SendCancel();
}
}