catch exceptions when invoking third-party event handlers
add IButton.EffectivelyVisible