UltraWinToolbars(TM)

.NET Windows Forms Control

v2.00.5001.19 - June, 2003

(C) Copyright Infragistics, Inc., 2001-2003

Infragistics, Inc., Windsor Corporate Park, 50 Millstone Road, Building 200 - Suite 150, East Windsor, NJ  08520

Voice (609) 448-2000, Fax (609) 448-2017, http://www.infragistics.com

 


.NET Framework Compatibility:
All included assemblies have been built against the Microsoft .NET framework 1.0 RTM build. You must have either the 1.0 or 1.1 RTM build of the framework installed for the product to work.

What’s New:

UltraWinTabbedMdi:


The UltraTabbedMdi component provides a Visual Studio .Net style tabbed interface for managing mdi child forms. The component will be responsible for the arrangement and organization of the mdi child forms. Each child form will be represented by an MdiTab object which exposes properties for the appearance of the associated tab.

The component will expose the same functionality as that of Visual Studio. For example, tabs may be repositioned within the collection of tabs by depressing the left mouse button on a tab and dragging over other tabs. Also, tabs may be dragged to the edges of a tab group to create a new “tab group”.

We will maintain the same restriction that Visual Studio does – all tab groups must be in the same orientation. The control exposes a single Orientation property. This property may be changed to switch the orientation of the current tab groups. MdiTabs are organized within a TabGroup object. Each tab group is a separate group of MdiTab instances and has its own SelectedTab. There is an ActiveTab property on the component which returns the MdiTab for the currently active mdi child form.

When a tab is dragged and released within the bounds of a tab group, the context menu displayed above is presented to determine where the tab is repositioned.

Right clicking on a tab will cause the context menu for the tab to be displayed. The default menu items allow the end user to close the tab or move it to another TabGroup.

UltraWinTabControl & UltraWinTabStripControl:

The 2 new controls, UltraTabControl and UltraTabStripControl, are very similar and expose almost identical object models. The following highlights the main differences:

UltraTabControl is designed as a replacement for the Microsoft supplied tab control. As such it automatically creates a tab page child control (UltraTabPageControl) for each tab. The tab page is used to contain controls that are unique to each tab. UltraTabControl exposes all the functionality of the inbox Tab control plus many new features including support for mnemonics, hiding and disabling tabs, shared controls, multiple tabs styles and orientations (including wizard and note page styles). UltraTabControl offers all of the functionality of ActiveTabs as well.

UltraTabStripControl exposes all of the features of the UltraTabControl except that it doesn’t create an UltraTabPageControl for each tab. Therefore the only thing that changes visually when a new tab is selected is the tab header area. Events are raised for both controls that give the developer the opportunity to initialize the tab area. Since the UltraTabStripControl doesn’t do any per-tab child control manipulation it can be data bound. It exposes DataSource, DataMember, TabKeyMember, TabTextMember and ToolTipTextMember properties. When bound, it automatically generates a tab for each row in the data source. It also fires a TabInitialized event for each tab that is loaded from the data source.

Both UltraTabControl and UltraTabStripControl derive from a common base class, UltraTabControlBase, which derives from UltraControlBase.

Key features of the controls include:

The overall architecture of the UltraTabControl will be the similar to the inbox tab control. At design time, tabs will be added or removed via context menu verbs. When a tab is added an UltraTab object is created along with a corresponding UltraTabPageControl control that will be made a child control of the UltraTabControl. The UltraTabPageControl is a container control that is derived from System.Windows.Forms.Panel so that other controls can be positioned on it. Tab visibility will be controlled internally by moving non-selected pages to non-visible locations. At runtime, the Visible property of the tab page controls for non-selected tabs will be set to false to prevent their controls from participating in tab order navigation.

Instead of the inbox tab control’s TabPages collection, UltraTabControl exposes a Tabs property which is a collection of UltraTab objects. The UltraTab exposes a TabPage property that returns its corresponding UltraTabPageControl. Note that the UltraTabStripControl also exposes the same collection of UltraTab objects. However, those objects return the SharedControlsPage (see below) for the TabPage property since individual tab page controls are not created for each tab in the UltraTabStripControl.

As in ActiveTabs, there will be a shared control area. Any controls placed in this area at design time will appear on every tab. When the UltraTabControl is first created a special UltraTabPageControl will be created internally as a child control to act as a container for the controls to be shared. The UltraTabControl will expose a SharedControlsPage property which will return this control. There will be a context menu verb available at design time to display the shared controls area. The SharedControlsPage control will display a set of instructions at design time to let the developer know how to add/remove tabs and how to use this feature. Shared controls will be made visible on the selected tab by re-parenting them to the selected tab’s UltraTabPageControl. The UltraTabStripControl will use this SharedControlsPage as its permanent child control area. Both controls will expose a collection of the shared controls through the SharedControls property.

A new feature of UltraTabControl that wasn’t available in ActiveTabs will be the ability to exclude shared controls for specific tabs. Shared controls can be excluded from one or more tabs at design time by clicking the ‘Exclude shared controls’ context menu verb which will bring up a dialog which lists the shared controls on one side and the tabs on the other. Selecting a shared control in the list will allow the developer to exclude that control from one or more tabs via a checked listbox of tabs. The UltraTab object will expose an ExcludedSharedControls collection so that this functionality can be exposed at runtime through code. This feature will not be supported for the UltraTabStripControl.

Multiple tab styles will be supported throughout the control’s Style property:

Normal - Raised borders (property page). This is a style exposed off the inbox Appearance property.

Buttons – The selected tab appears pressed. All other tabs appear as buttons. This is a style exposed off the inbox Appearance property.

FlatButtons – The selected tab appears pressed. All other tabs appear flat. This is a style exposed off the inbox Appearance property.

FlatRectangular – All tabs appear flat. The selected tab is highlighted via the back color of the tab. The tabs are bordered on 2 sides depending on tabOrientation.

VisualStudio – Only the selected tab appears raised. The others look flat with a vertical line separating 2 adjacent non-selected tabs. Also their captions appear grayed out

Excel – The tabs have straight inwardly sloping sides (in the shape of a rhombus). The right side of each tab overlaps its neighboring tab half way up except for the selected tab which overlaps its neighboring tabs on both sides.

Flat – All tabs appear flat. The selected tab is highlighted via the caption color with the other tab captions appearing grayed out.

NotePage – Page curl images appear in the upper right and left hand corners to turn the pages. A raised border is drawn around the tab. At design time an ‘x of x’ label will appear to identify the page (as in ActiveTabs).

NotePageFlat – Page curl images appear in the upper right and left hand corners to turn the pages. No border is drawn around the tab. At design time an ‘x of x’ label will appear to identify the page (as in ActiveTabs).

Wizard – No UI is provided at runtime to navigate between tabs and there are no borders around the control. At design time an ‘x of x’ label will appear to identify the page along with scroll buttons for navigation (as in ActiveTabs).

 

The MultiRowSelectionStyle property allows the developer to control whether the selected tab’s row is swapped with the row next to the tab page area or not. If swapping is not chosen the selected tab will be highlighted by alpha-blending the other tabs out so they appear dim.

The TabLayoutStyle property offers support for new multi-row metaphors for handling large numbers of tabs while conserving screen real estate. For example, scrolling tab rows or popping up multi-row selection windows. 

Visible and Enabled properties on the UltraTab object.

Index and Key properties on the UltraTab object. The Index property determines the order of the tab in the collection as well as its initial visible position. The Key property is used as an additional indexer into the Tabs collection. Both of these properties are read/write.

The control can take focus and as a result provides full support for keyboard navigation and mnemonics. It exposes the standard TabStop and TabIndex properties. Setting TabStop to false prevents the tab control from taking focus.

Drag and drop support for moving tabs at design time.  The UltraTabControl’s boolean AllowTabMoving property determines if this support is available at runtime.

The TabPageMargins property on UltraTabControlBase manages the spacing around the UltraTabPageControls.

Tooltips can be displayed for tabs. The UltraTab object exposes a ToolTipText property and the UltraTabStripControl exposes a ToolTipTextMember property so that when bound the ToolTipText property can be automatically initialized from the data source.

The ImageSize property on the control determines the space allocated for images.

Note: The inbox tab control raises a DrawItem event to support owner-drawing of the tabs. We will not duplicate this event since the DrawFilter interface provides much better capabilities. 

UltraToolbarsManager:

Office2003 style for UltraToolbarsManager
Tool events for UltraToolbars Manager
DesignTime Support For Adding Custom Tools

UltraDockManager:

Ability to fill window with panes
Ability to undock panes to mdi child forms

Suggestions Implemented:

WTB901 - Add a way to use a WinToolbars Context Menu with the NotifyIcon Component. ContextMenuUltra extender property works for NotifyIcon components
WTB896 - Add methods to allow merging without MDI Forms. ActiveMdiChildManager and MdiParentManager properties are now settable if both the parent and child manager's MdiMergeable properties are set to false
WTB886 - ShowPopup should have an overload which does not take a point
WTB885 - Add a way to color the client area/tab area separately.Added ClientAreaAppearance properties to UltraTabControlBase and UltraTab and added ResolveClientAreaAppearance method to UltraTabControlBase”
WTB880 - Add a way to have a single (non-sunken) border around the TabGroups.  We now render the border and have a BorderColor property as well.
WTB821 - Request for an Office 2003 style
WTB800 - Add an event that fires for each tab before the tab is saved so you can set the PersistedInfo
WTB530 - Request for a property to stop flyouts when hovering over a tab.  I added an UnpinnedTabHoverAction, it can be set to Flyout (default), ToolTip, or None.
WTB525 - Need a method to dock a control at run-time, just like the verb at design-time.  I added a CreateDockArea method that takes an array of controls, a DockedLocation and a ChildPaneStyle.
WTB473 - Ability to fill an entire area using a dockable control. There is now a LayoutStyle property on the UltraDockManager. The default is "Standard" which just does what it does now - the controls are allow docked along the edges of the container. When set to FillContainer, the inner most is treated as a Fill control and fills the remaining area.
WTB433 - Add a property to make unpinned tabs not flyout but show tooltips instead, when the mouse moves over the tab.  I added an UnpinnedTabHoverAction, it can be set to Flyout (default), ToolTip, or None.
WTB429 - Add a way to have unpinned TabGroups always display the full text.  I added a CompressUnpinnedTabs property, which defaults to true. I also added an UnpinnedTabStyle property to control the style of the unpinned tabs
WTB293 - Tabbed MDI manager. There's now an UltraTabbedMdiManager component
WTB262 - Customer wants floating windows to be MDI Children. There is now an IsMdiChild property on the DockableControlPane so that a pane can be hosted in an mdi child window. There is also an MdiChildIcon property to allow the icon for the form to be controlled

INSTALLING HOT FIXES:
Please follow these instructions to install .NET Hot Fixes.

  1. To install the Hot Fix assemblies, extract the assembly DLL and its .XML file into your installation folder. The default location for the assemblies is C:\Program Files\Infragistics\PRODUCT NAME\v2.00.5000.
  2. If the Hot Fix .ZIP file includes the Infragistics.Win or Infragistics.Shared assemblies, extract these files to C:\Program Files\Common Files\Infragistics\Win\v2.00.5000 and C:\Program Files\Common Files\Infragistics\Shared\v2.00.5000, respectively.
  3. Note: If your project uses more than one Infragistics .NET product, you must install the Hot Fix for all the products used. For example, if you install the Hot Fix for UltraWinGrid, you cannot use UltraWinGrid and UltraWinTree in the same project unless UltraWinTree is upgraded to the Hot Fix, also. All of the Win Forms products rely on the same framework (Infragistics.Win, Infragistics.Shared) which is updated by the Hot Fix.
  4. Win Forms (UltraWinGrid, UltraWinListbar, UltraWinTree, and UltraWinSchedule) and the Infragistics.Win and Infragistics.Shared Hot Fix assemblies also need to be copied to the GAC (C:\Windows\Assembly). Drag the assemblies from their installed folders into the GAC. After you copy the latest versions to the GAC, be sure to remove any older versions.


It is recommended that you install the Hot Fixes only if you are experiencing a specific issue addressed by the Hot Fix that cannot be satisfactorily resolved by a workaround.

 Hot Fix Note:
Hot Fixes may not be included in full suite releases.  You may need to reapply your Hot Fix after you have installed a full suite release.

Issues Addressed:

Use the knowledge base in the Infragistics Support Center
http://www.infragistics.com/support/supportcenter.asp
to review the history of addressed issues.
http://www.infragistics.com/process/p_knowledge.asp?product=91&articlestypebugfix=on

UltraWinToolbars 2.00.5001.19.01 – June, 2003
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Compiled against Infragistics.Shared.v2 and Infragisitics.Win.v2 2.00.5001.19
- Initial Release

UltraWinToolbars 2.00.5000.32.01 – January, 2003
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Compiled against Infragistics.Shared.v2 and Infragisitics.Win.v2 2.00.5000.32
- Full Release containing all previous Hot Fixes

UltraWinToolbars 2.00.5000.22.01 – December, 2002
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Compiled against Infragistics.Shared.v2 and Infragisitics.Win.v2 2.00.5000.22
- Full Release

UltraWinToolbars 2.00.5000.16.00 – October, 2002
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Compiled against Infragistics.Shared.v2 and Infragisitics.Win.v2 2.00.5000.16
- Initial Release