I have two documents in one TabStrip. I drag one out. Just right after the drag is over I need the information on what Documents (from entire RadDock control) are actually visible (drawn on the screen; not Class-property-wise visible) and which are hidden beneth the others. This only concerns DocumentWindows.
3 Answers, 1 is accepted
0

Robert
Top achievements
Rank 1
answered on 07 Aug 2009, 06:20 PM
Hey Paul,
This probably isn't the most efficient way to accomplish what are you trying to do, but it should be a good workaround for your problem. These two functions do exactly what you need, they return lists of hidden or front(in view) document windows.
I hope this helps.
- Robert
This probably isn't the most efficient way to accomplish what are you trying to do, but it should be a good workaround for your problem. These two functions do exactly what you need, they return lists of hidden or front(in view) document windows.
List<DocumentWindow> GetFrontDocumentWindows() |
{ |
List<DocumentWindow> frontWindows = new List<DocumentWindow>(); |
List<DocumentTabStrip> tabStrips = new List<DocumentTabStrip>() ; |
GetTabStrips(documentContainer1.Controls, tabStrips); |
foreach (DocumentTabStrip tabStrip in tabStrips) |
{ |
DocumentWindow docWindow = (DocumentWindow)tabStrip.Controls[tabStrip.SelectedIndex]; |
frontWindows.Add(docWindow); |
MessageBox.Show(docWindow.Text); |
} |
return frontWindows; |
} |
List<DocumentWindow> GetHiddenDocumentWindows() |
{ |
List<DocumentWindow> hiddenWindows = new List<DocumentWindow>(); |
List<DocumentTabStrip> tabStrips = new List<DocumentTabStrip>(); |
GetTabStrips(documentContainer1.Controls, tabStrips); |
foreach (DocumentTabStrip tabStrip in tabStrips) |
{ |
foreach (Control ctrl in tabStrip.Controls) |
{ |
DocumentWindow docWindow = ctrl as DocumentWindow; |
if (docWindow != null && docWindow != tabStrip.Controls[tabStrip.SelectedIndex]) |
{ |
hiddenWindows.Add(docWindow); |
MessageBox.Show(docWindow.Text); |
} |
} |
} |
return hiddenWindows; |
} |
void GetTabStrips(Control.ControlCollection controls, List<DocumentTabStrip> tabStrips) |
{ |
foreach (Control ctrl in controls) |
{ |
if (ctrl.Controls.Count > 0) |
GetTabStrips(ctrl.Controls, tabStrips); |
if (ctrl is DocumentTabStrip) |
tabStrips.Add((DocumentTabStrip)ctrl); |
} |
} |
I hope this helps.
- Robert
0
Accepted
Hi Robert,
Thank you for your input, this is one way to get all currently visible (displayed) windows. There is another simpler one. RadDock uses a helper class since Q2 2009 SP1 - DocumentManager - which track all documents in the docking framework (a document is either a DocumentWindow or a ToolWindow whose DockState is TabbedDocument). So, you may use the DocumentManager functionality:
Greetings,
Georgi
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Thank you for your input, this is one way to get all currently visible (displayed) windows. There is another simpler one. RadDock uses a helper class since Q2 2009 SP1 - DocumentManager - which track all documents in the docking framework (a document is either a DocumentWindow or a ToolWindow whose DockState is TabbedDocument). So, you may use the DocumentManager functionality:
private List<DockWindow> GetDisplayedDocuments() |
{ |
List<DockWindow> documents = new List<DockWindow>(); |
foreach (DockWindow window in this.radDock1.DocumentManager.DocumentEnumerator) |
{ |
DockTabStrip parentStrip = window.DockTabStrip; |
//check whether the window is currently displayed |
if (parentStrip != null && window == parentStrip.ActiveWindow) |
{ |
documents.Add(window); |
} |
} |
return documents; |
} |
Greetings,
Georgi
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0

Paul
Top achievements
Rank 1
answered on 10 Aug 2009, 11:29 AM
Thanks for a reply, that works great =)