I have a custom control which inherits from ComboBox. Its constructor sets the .DropDownStyle property to DropDownList (which I need it to be in all cases). I notice that if the user scrolls the mouse wheel while the cursor is over an instance of the custom control, it changes the selected item, EVEN when the custom control does not have the focus. This makes it much too easy to inadvertently change the selected item without knowing you've done so. What I want to do is have the control ignore the mouse wheel unless it has the focus (or possibly unless it has the focus AND the .DroppedDown property is True). I've tried the following code, and multiple variations on it, but it just disables the mouse wheel in all cases (even if .DroppedDown is True). Is there a way to do what I want here?

Code:
    
Protected Overrides Sub OnMouseWheel(e As MouseEventArgs)
    Dim hmwe As HandledMouseEventArgs = DirectCast(e, HandledMouseEventArgs)
    If Not Me.DroppedDown Then
        hmwe.Handled = True
    End If
    MyBase.OnMouseWheel(e)
End Sub