You need to transform the MousePosition into client coordinates and test the ClientRectangle of the control.
VB.NET
Imports System.Windows.Forms
Public Function MouseIsOverControl(ByVal c As Control) As Boolean
Return c.ClientRectangle.Contains(c.PointToClient(Control.MousePosition))
End Function
C#
using System.Windows.Forms;
public bool MouseIsOverControl(Control c)
{
return c.ClientRectangle.Contains(c.PointToClient(Control.MousePosition));
}