I have not tried myself, but even though this is semantically correct, the event handler will be called in a thread that is NOT the UI thread, so you cannot change any property that will cause a change in the UI.
Can you put a MessageBox.Show method just to make sure that it is called?
You will pass the call from the thread the event is called to the UI thread by doing an Invoke