Telerik UI for Winforms

Release History

UI for WinForms 2009.2701

June 30, 2009

NEW RadDock

RadDock is a brand new component in the Telerik toolbox, which will supersede the old DockingManager. Features at a glance:
  • The most advanced docking system on the market
  • Completely new layout system, pluggable per RadSplitContainer basis. Virtually any layout scenario may be achieved in a few lines of code
  • Completely new drag-and-drop mechanism, fully transparent and highly customizable API, based on services
  • Revamped Quick Navigator (CTRL+TAB window list) with extensible keyboard support and active panel preview
  • Entirely new re-dock support, based on services. Each dock window may be restored to exactly the same place it was occupying previously
  • Transaction-based docking model, allowing for multiple tasks to be stacked and executed at once
  • Document drag-and drop and re-order
  • State transitions like in Visual Studio - Dockable to Tabbed Document to Floating, etc.

Common DockingManager API vs RadDock Q2 2009 API

DockingManager RadDock Q2
using Telerik.WinControls.Docking; using Telerik.WinControls.UI.Docking;
class DockableWindowCollection class DockWindowCollection
class DockPanel class DockWindow
(or ToolWindow or DocumentWindow)
interface IDockable interface IDockWindow
(generally DockWindow class can be used)
dockingManager.SetDock(window, position) radDock.DockWindow(window, position)
dockingManager.Float(window) RadDock.FloatWindow(window);
dockPane.DockTo(anotherWindow, state) radDock.DockWindow(window, DockPosition.Bottom);
dockWindow.DockState = DockState.Floating;
dockWindow.DockState = DockState.AutoHide; etc
radDock.DockWindow(dockPane, anotherWindow , state)
dockingManager.DockingStateChanged radDock.DockStateChanged
dockingManager.DockingStateChanging radDock.DockStateChanging
dockingManager.Hide(dockWindow, true); dockWindow.DockState = DockState.AutoHide;
dockingManager.LoadXML(fileName) LoadFromXml(fileName)
+ overloads available
dockingManager.SaveXML(fileName) SaveToXml(fileName)
+ overloads available
dockingManager.Reset() radDock.Clear()
dockingManager.GetManagedDockables radDock.DockWindows
dockPane.TabStripVisible = false; dockWindow.TabStrip.TabStripElement.Visibility = ElementVisibility.Collapsed;
DockWindow.Activated event radDock.ActiveWindowChanged/Changing

Upgrading from DockingManager to RadDock

The new RadDock comes with an upgrade tool within Visual Studio which will help you move from the old DockingManger to the new RadDock. It converts DockingManger's XML layout serialization to the new XML structure of RadDock, so that you do not have to recreate the structure yourself.
NOTE: You may need to remove/redo any custom code related to the docking control, because it may not work with the new docking component. Also, remove any workarounds related to the old DockingManager.

  1. Download the beta version of RadDock and install the package. The package contains all the controls from RadControls for WinForms Q1 2009 SP1, and a new assembly for the new RadDock Beta (Telerik.WinControls.RadDock.dll). This means that both versions of RadDock (old and new) are fully functional and can be used in the same application.
  2. Once the installation completes, feel free to review the RadDock Examples (Start --> Programs --> Telerik --> RadControls for WinForms Beta --> Run Demos).
  3. Back up your project.
  4. Include/update the references of the following assemblies in your application:
    • Telerik.WinControls.dll
    • Telerik.WinControls.UI.dll
    • Telerik.WinControls.RadDock.dll (new RadDock)
    • Telerik.WinControls.Docking.dll (old DockingManager)
    • TelerikCommon.dll
  5. Restart Visual Studio to ensure that all references are updated (sometimes VS.NET locks the assemblies and they are not updated properly).
  6. Open a form with the old docking and right-click on it in design time.
  7. From the context menu select the DockingManager control (it is necessary to select DockingManager, because the option to convert to RadDock is in its designer). The DockingManager will get selected, and the option to open the smart tag should appear.
  8. Open the smart tag - you will see a new option to convert to the new RadDock.
Read more on RadDock...

NEW RadSplitContainer

The Telerik SplitContainer for Windows Forms is a complicated layout control, which emerged from the new RadDock's layout base (see above). RadSplitContainer is a composite control which allows you to add many container panels to a form, separated by splitter(s). It is very handy for creating complex user interfaces where a selection in one panel determines what objects are shown in another panel. The splitter makes it very easy for users to resize the panels to fit their personal liking. What makes RadSplitContainer unique are several features, which are not available in Microsoft's SplitContainer control:

  • As with the default SplitContainer, nested containers are supported by RadSplitContainer, however you are not limited to the initial two panel setup - you can have as many panels in a container as needed without having to nest more containers;
  • All splitters used in RadSplitContainer can be fixed unlike the default toolbox control which is limited to just one fixed splitter;
  • The appearance of RadSplitContainer can be skinned to your liking. For your convenience, several themes are offered out of the box;
  • RadSplitContainer offers extended design-time support with the most common options included directly in the smart tag:
    • You can add new horizontal or vertical panel(s) to the selected container;
    • You can set the orientation of the splitter (horizontal/vertical);
    • You can fix the splitter to restrict panel resizing.




  • Updated themes


  • Fixed: FirstCalendarDay property
  • Fixed: Selection bugs



  • Fixed: Missing axis item labels with AutoScale=false and IsLogarithmic=true
  • Fixed: A null reference exception when passing an empty data source
  • Fixed: An IndexOutOfRange exception in the chart wizard
  • Fixed: Skin loading performance optimizations
  • Fixed: Blinking tooltips in Windows Vista
  • Fixed: A memory leak

RadForm and RadRibbonForm


  • Entirely new implementation
  • Transparency support under Windows Vista and Windows 7
  • Improved loading and painting performance, enhanced refresh behavior, and new mechanism for applying borders
  • Improved resizing and general look and feel
  • Improved MDI support
  • Improved Menu Merge functionality
  • New active/inactive states with animation transitions
  • Added ability to add form icons to both the form and the MDI child
  • Improved theming capabilities in the Visual Style Builder
  • Added support for Image Borders
  • The new version address all issues that existed with previous versions of RadForm and RadRibbonForm.
  • Breaking Changes: RadForm and RadRibbonForm are moved from the Telerik.WinControls namespace to Telerik.WinControls.UI.
  • Breaking Changes: RadForm and RadRibbonForm do no longer contain ClientFillPrimitive element in their element hierarchy. It is no longer needed. Use RadPanel to set the fill of the form if you would like to achieve similar functionality.



  • Save/Load layout dialog in RadGridView property builder
  • RadGridView editors system. Now it is possible to change the behavior of the editors and create custom ones
  • Cell and row validation using the new CellValidating/CellValidated and RowValidating/RowValidated events (Validating and Validated events are not used anymore)
  • CellValueChanged event. It is fired when a cell changes its data
  • New Tabbed child view has been added to represent one-to-many relationships in RadGridView
  • Button at the right top corner of group panel items that enables closing the item
  • “Clear Value” menu option that allows setting the cell value to null
  • Aqua theme added
  • Export to Excel takes significantly less memory and the performance is improved. The entire class ExportToExcelML has been rewritten to be better arranged and optimized
  • Added a WrapText property to SingleStyleElement in Export to Excel. If ExportVisualSettings is set to true, it takes the value from RadGridViewColumn.WrapText property or it can be manually set in ExcelCellFormatting event
  • New ExcelCellFormatting event has been added which allows additional formatting such as adding a border, setting alignment, setting text font, setting colors, changing cell value, etc.
  • New ExcelTableCreated event has been added. In conjunction with the new public method, AddCustomExcelRow allows adding and formatting new custom rows on the top of the table which is created from RadGridView data


  • Fixed: RadGridView hierarchy mode
  • Fixed: RadGridView updates for edit and sort/group operations
  • Fixed: RadGridView aggregate calculations in unbound mode
  • Fixed: It is not possible to add rows to an empty child view
  • Fixed: Memory leaks related to GridViewMultiComboBoxColumn and GridViewLookupColumn
  • Fixed: ScrollToColumn not working
  • Changed: The behavior of ValueChanging/ValueChanged events. These events fire when an active editor changes its value
  • Export to Excel Fixed: Exception if you try to export empty RadGridView
  • Export to Excel Fixed: Removed decimal separator symbol dependency from the culture
  • Export to Excel Fixed: Exporting of visual settings when ExportVisualSettings parameter is set to false
  • Export to Excel Fixed: Missing comma in the text values that look as a number
  • Export to Excel Fixed: Format Types were skipped when  exporting without visual settings 
  • Export to Excel Fixed: Format Types were skipped when there is more than one visual base
  • Export to Excel Fixed: All visual settings are lost if there is not at least one visible base row (a row whose visual appearance comes from a theme). Now the exporting skips the base theme settings but applies all other visual settings such as grid header row formatting, conditional formatting, and alternating row settings
  • Export to Excel Fixed: Out of memory exception when exporting large numbers of data.
  • Breaking Change in Export to Excel: The constructor of ExportToExcelML class has a parameter of type RadGridView. You cannot make an instance of ExportToExcelML class without specifying the grid which will be exported. The old constructor - without a parameter - is marked as obsolete.
  • Breaking Change in Export to Excel: The enumerations ExcelMaxRows, HiddenOption, and SummariesOption are out of the ExportToExcelML class body. They are in Telerik.WinControls.UI.Export namespace;
  • Breaking Change in Export to Excel: The RunExport method now takes only one parameter: file name. All other parameters such as RadGridView, SheetMaxRows, and ExportVisualSettings are ExportToExcelML public properties with default values. The old method is marked as obsolete.
  • Breaking Change in the Editor's system: Now all editors are not RadElements. They implement the IInputEditor interface or inherit from BaseGridEditor. You should use the EditorElement property to access the underlying RadElement.
  • Breaking Change in the Editor's system: Now the CellEndEdit event fires after finishing the editing process. You should use the CellValidated event to access row properties (e.g Tag) when adding new row.



  • New: Menu merge and MDI support


  • Fixed: The third level of the context menu items no longer hides the first level
  • Fixed: Main menu hover is now disabled after context menu is open



  • New: RadGalleryPopupElement
  • Improved the behavior of the Contextual Tab Groups
  • New Aqua theme


  • Bugs at design time



  • New: HTML-like formatting can now be used in month view cells
  • New: Design time editors for setting up data binding and mapping to data source properties
  • New: RadScheduler now uses an IAppointmentFactory implementation to create appointment instances in order to allow creating custom appointment objects that can carry additional information/logic
  • New: SchedulerBindingDataSource. EventBindingProvider now uses an IResourceMapperFactory implementation to create a resource mapping objects (used to read / write the associated resources for an appointment) thus allowing complete control over the process of associating resources with appointments
  • New: Added virtual OnDeleteButtonClicked method in the appointment edit dialog to allow control over what happens when the user clicks on the "Delete" button
  • Improved: Data binding example to show binding to custom fields from the data source
  • Improved: Custom class that inherits from Appointment and adds an Email property
  • Improved: Custom appointment edit dialog that inherits from the default dialog and adds an Email field
  • Improved: Appointment factory that creates instances of the custom appointment
  • Improved: Adding mapping to a custom field of the AppointmentMappingInfo instance
  • Improved: Handler for the AppointmentEditDialogShowing event of RadScheduler that shows the custom appointment edit dialog.


  • Fixed: SchedulerDayView, SchedulerWeekView, SchedulerMultiDayView, WorkTime property values were not preserved when navigating
  • Fixed: WeekView, MonthView. Setting ShowWeekend to false removed the last two days instead of Saturday and Sunday
  • Fixed: Quick navigation buttons visibility was not refreshed when the appointments collection was changed.



  • Added support of scrolling tabs at design time



  • New: Added localization support
  • New: API improvements
  • New Events: DragStarting, DragStarted, DragEnding, DragEnded, OrientationChanging, OrientationChanged
  • Improved Design Time: Toolstrip items and elements can be added with a single click
  • Improved Design Time: Populating toolstrip items via drop down arrow button
  • Improved Design Time: Toolstrip items can be added similarly to the standard Toolstrip
  • Improved Design Time: A hand cursor appears on areas which - when clicked - new items are added or editing of an existing item can be started


  • Fixed: Minor fixes in Overflow menu.



  • New: Control Default Theme
  • New: Vista Theme


  • Fixed: Scrollbars proportions
  • Fixed: Horizontal Scrollbar hide bug
  • Fixed: Fixes in Image caching
  • Fixed: Self-reference data binding

Telerik Presentation Framework


  • New: GDI text rendering - now each control and element has UseCompatibleTextRendering property, which when set to true will use GDI to draw text
  • New: TextWrap for Text Renders
  • Optimized performance and memory usage/disposal through vastly improved RadObject and RadProperty system. Read more
  • Breaking Change in RadObject: The Dispose() method is no longer virtual. You must override the DisposeManagedResources() and DisposeUnmanagedResources() methods.
  • Fixed: RadButton.AutoSize property
  • Fixed: Disposing logic

New features & Roadmap

Have a feature request?

Post your feedback via the WinForms UserVoice portal or the Public forums

What's new across all Telerik products?

See all updates

Get Started Waves

Next Steps

Online help

Access our online documentation.

Compare pricing

Check out the offers. Purchase an individual suite or treat yourself to one of our bundles.

Download 30-day free trial

Try UI for WinForms with dedicated technical support.