[Mono-bugs] [Bug 78481][Nor] Changed - Control OnLeave() is incorrectly invoked when it gets focus

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue May 23 00:57:18 EDT 2006

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by atsushi at ximian.com.


--- shadow/78481	2006-05-22 14:42:13.000000000 -0400
+++ shadow/78481.tmp.11395	2006-05-23 00:57:18.000000000 -0400
@@ -66,6 +66,38 @@
 Additional Information:
 If I understand correctly it kinda blocks bug #78363.
 ------- Additional Comments From atsushi at ximian.com  2006-05-22 14:42 -------
 Turned out that it also happens to other things like Form.
+------- Additional Comments From atsushi at ximian.com  2006-05-23 00:57 -------
+I dug it more in depth as well as I feel I need more explanation on it.
+* general Control event order
+Two points could be read from above:
+- In Control, Leave is raised *after* LostFocus.
+- For Form, it should not raise Enter and Leave events as explained in
+the above page:
+"Typically, the GotFocus and LostFocus events are only used when
+updating UICues or when writing custom controls. Instead the Enter and
+Leave events should be used for all controls except the Form class,
+which uses the Activated and Deactivate events."
+(As far as I tried, Form also does not raise GotFocus and LostFocus.
+Attaching a modified test code. Moving focus to anywhere does not
+raise those events).
+* DataGrid events
+When its DataGridTextBox gets focus, WM_KILLFOCUS happens (at least on
+mono). In that case, DataGrid should not raise Leave event.
+On the other hand, it still raises LostFocus. Thus, Leave and
+LostFocus are not always parallel. Something similar might happen to
+other ContainerControls but I need more research on it.

More information about the mono-bugs mailing list