public class RButtonMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
const int WM_RBUTTONDBLCLK = 0x206;
const int WM_RBUTTONDOWN = 0x204;
const int WM_RBUTTONUP = 0x205;
switch (m.Msg)
{
//过滤掉所有与右键有关的消息
case WM_RBUTTONDBLCLK:
case WM_RBUTTONDOWN:
case WM_RBUTTONUP:
{
return true;
}
default:
{
return false;
}
}
}
}
然后,在启动的时候,加入过滤器
static void Main()
{
RButtonMessageFilter filter = new RButtonMessageFilter();
Application.AddMessageFilter(filter);
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
If e.Button.Right Then
'不做动作
End If
End Sub