Hello Friends,
In my Application, i had defined a DockableControlPane. The problem is the Auto hide property.
When the DockableControlPane is visible, if the mouse pointer clicks on any editable control outside the
pane, it Auto hides.But When the mouse pointer clicks on a no editable controls, the
DockableControlPane stays visible and it doesn't hides.
In the Picture below the Red line marked area are no editable controls. Where as the Blue Line marked
area are text boxes which are editable.
Why this Happens.Please provide me guidance how to over come this.
from,
M.Thillai.
Friends,
I Solved the issue, just by setting focus on a editable control while clicking no editable area. The AutoHide of the dockmanager works perfectly.
M.Thillai
The dock pane will remain visible if a control within it has focus. This is why clicking on an editable control on the Form auto-hides the pane. It is also why manually focusing an editable control on the Form auto-hides the pane. Both actions take focus away from the control within the pane. You can also manually auto-hide all panes by calling the FlyIn() method on the UltraDockManager.
Its actually not as bad as it sounds. I've attached a small sample which does what I described.
Thanks Mike for your answer.I thought about something more "lightweight" ;)So there is nothing build in if I get it right... hmm, I'll deal with it.Thanks again and best regardsAndy
You might be able to use a message filter to inspect all mouse messages in the application. When a mouse down occurs, you could see what control it was sent to and walk up the parent chain of that control to see if you are in a dock pane which is currently flown out. This would require that your application is running in a full trust environment though.
In order to clarify this a little bit more:Assume there is an Infragistics calculator control on the pane. Users click it to calculate whatever they want and after that the pane does not autoclose anymore due to the focus thingy already mentioned.
Focus can not always be taken away by clicking other parts of the application, because under certain circumstances the application does not contain focusable controls by this time, especially early in the lifecycle of the application.
The same applies to an UltraMonthViewMulti control on another pane, which also does not autoclose after a certain date is selected.
While I can indeed use (taking the UltraMonthViewMulti [referred as UMVM] control as example) the MouseEnter event of the UMVM to set a flag indicating that the mouse is over the UMVM and the MouseLeave event of the UMVM to check the flag and use the UltraDockManagers FlyIn() method to close it again I feel this seems a little bit complicated to implement for all the controls on the panes. Although this might not always be possible for more complicated controls (we use some usercontrols there too that are quite staggered).
Therefore the question for a more elegant way to close the pane if a user leaves the pane.As far as I am aware the DockableControlPane and the underlying DockableGroupPane do not have MouseEnter/MouseLeave events.
Any help or comment is kindly appreciated,cheers againAndy
Hi Mike,
I have the same issue. While I understand why the pane stays open I still try to close the pane when the cursor leaves the Pane.Is there a way to archive this? MouseEnter and MouseLeave events of the shown control within the pane do not work...
Any help is kindly appreciated,best regardsAndy