I have a test application with an MDI parent and 4 MDI child forms. The ChildForm has a timer that updates a progress bar. It also has a Suspend() method that disables the timer, and a Resume() method that enables the timer.
I handle 2 events on the MDITabPanel in the ParentForm:
(1) SelectedIndexChanging to call Suspend() on the currently active form.
(2) SelectedIndexChanged to call Resume() on the newly active form.
The issue I have if I switch very quickly between tabs, the tab order changes. E.g. If I am currently on Tab0 and click on Tab3 and then click on Tab1, Tab3 and Tab1 switch positions. From the Console.WriteLines, it looks like the IndexChanged events are firing fine (once for 0 to 3, once for 3 to 1). However, the MDIChildActivate only fires once , even though it should''ve fired once for Tab3 and once for Tab1.
This only happens when I introduce some lag in my Resume method (large loop). I have tried calling the Resume method on a different thread, but it doesn''t seem to make a difference.
Any suggestions would be appreciated.
ADAdministrator Syncfusion Team May 31, 2005 01:20 PM
It appears that the tab order changing is not a bug. Rather, it occurs because the control believes that the clicks are the user reording the tabs with drag and drop. I''m currently looking into a way to fix this. If I''m unable to locate a way, I''ll most likely enter this as a defect.