Telerik UI for Winforms

Release History

UI for WinForms 2009.31103

November 2, 2009

The main focus for the Q3 2009 release in November continues to be on optimizations in the overall performance and stability of our toolset, brisk and slicker theming, and improvements throughout major controls. Telerik RadControls for WinForms Q3 2009 Beta includes improvements in the feature set of existing controls and several optimizations in performance and behavior.

Telerik Presentation Framework

  • Performance optimizations:
    • Refactorred the RadElement life cycle, which decreases RadControls application’s load and dispose times by optimizing the loading and the disposing of the controls’ element trees. Depending on the controls used, an application/form will launch between 20% and 300% faster. The new RadElement life cycle eliminates the major disadvantages of the previous element tree’s “Lazy” loading mechanism, namely:
      • FIXED: Loading of the entire element tree immediately after a single property has been changed;
      • FIXED: The overhead which the calls to EnsureChildElements method were creating;
      • FIXED: Numerous layout executions while the element tree was loading;
      • FIXED: Themes were applied without a clear entry point;
      • FIXED: Unnecessary number of PropertyChanged notifications were processed while actually not needed;
      • FIXED: Element tree layouts and PropertyChanged notifications running during the Disposing stage;
      • FIXED: Serialization of properties at design-time.
      • Breaking change: The new RadElement lifecycle eliminated the need of the EnsureChildElementsCreateChildElements method however does exactly the same thing as in the previous version. method, which in no longer available. The The only difference is in the order of execution of inheritors’ constructors and this method, which is virtual. A virtual method chain starts from the top-level inheritor down the base one and constructors are triggered in a reverse order. Let’s say that we have a class Foo, which derives from RadElement. The order of methods executed will be:
        • RadElement.Constructor
          • Foo.InitializeFields
          • RadElement.InitializeFields
          • Foo.CreateChildElements
          • RadElement.CreateChildElements
        • Foo.Constructor
      • Change: A slight change has been introduced in the BackColor, ForeColor and Font property serialization in RadControl and RadForm. The logic now is:
        • If the value comes from a theme or is inherited, it is not persisted
        • If the value is explicitly set locally, using the property setter (either at design or run time) then the property should be serialized.
        • Local property value may be restored to its default value by setting:
          • Color.Empty for the BackColor and ForeColor properties.
          • Null for the Font property.
    • IMPROVED: Theme mechanism which impacts application loading times and RadForm creation, as well as the time needed to switch between themes.
    • IMPROVED: TPF paining engine.
  • HTML-like text rendering:
    • Optimized text rendering. Performance gain: ~30%;
    • Improved HTML parsing through StringTokenizer refactoring. Performance gain: ~500%;
    • The supported HTML markup has been enhanced with the following tags:
      • Relative font size (xx-small, x-small, small, medium, large, x-large, xx-large, smaller, larger)
      • Lists (<ol>, <ul>, <li>)
      • Links (<a href>)
      • Background-color
      • Style
      • Image support – local or from project resources
      • <strike>
      • <span>
      • <em>
      • <strong>
      • All options but images are available in the new RadMarkupEditor WYSIWYG editor (see below).
    • Added support for not well formatted HTML lists.
  • TextPrimitive:
    • Fixed: Truncated text issue, which impacts all controls;
    • Fixed: TextWrap in design mode
    • Several painting and layout optimizations due to better text size calculation.
  • New popup mechanism has been added on framework level (currently implemented in RadComboBox, RadMultiColumnComboBox, and RadRibbonBar). The popup solves all flickering issues (caused by unnecessary activation/deactivation) of the parent form when the popup is opened. It also provides support for fade-in and fade-out popup animations.
  • Themes - Performance optimizations in loading times, form creation, theme changing performance.
  • LightVisual Element
    • Fixed: Text Clipping issue
    • Fixed: Padding not respect
    • Added: Link support 
  • Added API which allows:
    • Merging Telerik assemblies into a single assembly.
    • Merging Telerik assemblies with the executable file of the solution.

RadMarkupEditor (new user control)

RadMarkupEditor is a WYSIWYG editor which has been added on framework level to simplify the way users and developers edit text in HTML-like markup. The editor provides an intuitive and easy to use
Ribbon interface and can be used both in design-time and at runtime (runtime support will be available in the official Q3 release). RadMarkupEditor is available for all Telerik WinForms controls which support HTML-like text formatting.

RadScrollablePanel (new control)

RadScrollablePanel is a variation of RadPanel, but customized to support themable scrollbars. The control is composed of two RadScrollBars and a RadPanel that represents a container for other controls and provides the scrolling functionality. The control can be used exactly as a standard panel - any controls can be easily added to it with the standard Visual Studio drag-and-drop routine. It supports all Telerik Themes, but the appearance of the panel and the scrollbars can be further customized to fit your application skin theme.


  • Breaking Changes: The IsChecked property has been marked obsolete. The ToggleState property must be used instead. IsChecked still works but should not be used anymore since it will be removed in a future release.(This applies for RadRadioButton and RadCheckBox as well since they inherit from RadToggleButton.)
  • Breaking changes: The DropDownClosed event handler signature has been updated to use RadPopupClosedEventArgs (valid for RadApplicationButton, RadDropDownButton, RadContextMenu, RadGalleryElement, RadSplitButton)

RadComboBox and RadListBox

The new version of RadComboBox and its derivative – RadListBox – come with improved data binding through refactoring, which results in faster, more stable binding, support for large number of items, and memory footprint improvements. The other improvements include:
  • New popup mechanism for RadComboBox. For more information see the TPF section above;
  • Fixed: Various data-binding issues collected from user feedback, such as broken data binding currency synchronization if DisplayMember is set after setting DataSource.
  • DisplayMember is automatically set when ValueMember is set (only if DisplayMember is not set initially). This behavior is closer to the standard ListControl.
  • Breaking Changes: The Items collection can no longer be cleared if DataSource is set to a non-null value. If the Items collection is modified in the aforementioned conditions an InvalidOperationException is thrown.
  • Breaking Changes: Items cannot be removed if DataSource is set to a non-null value. Items can only be inserted before or after the data bound items in this case. If the Items collection is modified in the aforementioned conditions an InvalidOperationException is thrown. When DataSource is set to null, the Items collection can be modified freely.
  • Breaking Changes: The SelectedIndexChanged and SelectedValueChanged events are refactored and do not behave as before. SelectedValueChanged fires only when SelectedValue changes (for example when ValueMember changes,  RadListBox/RadComboBox updates itself and fires SelectedValueChanged). SelectedIndexChanged does not fire every time an item is clicked on. Instead it fires only when the new index is different from the old one.
  • Breaking Changes: Opening the drop down via the ShowDropDown() method of RadComboBox no longer transfers focus to RadComboBox.
  • Breaking Changes: RadComboBox no longer selects the hovered item after tabbing out of the control.
  • Breaking Changes: Selection is no longer lost when the selected item is deleted, instead the selection remains on the same position, only the selected item changes and the selected value if it is different.
  • Breaking Changes: The DropDownClosed event handler signature has been updated to use RadPopupClosedEventArgs.


  • Breaking changes: The Closed event handler signature has been updated to use RadPopupClosedEventArgs


  • New: DragDropService.DragDropBehavior property added to allow for complete service automation.
  • New: DocumentTabsAlignment property added to control the orientation of tabs for DocumentTabStrip instances.
  • New: ToolTabsAlignment property added to control orientation of tabs for ToolTabStrip instances.
  • New: ToolTabsVisible property added to determine whether ToolTabStrip instances will display a TabStripElement, allowing for navigating among tool windows.
  • New: DocumentTabsVisible property added to determine whether DocumentTabStrip instances will display a TabStripElement, allowing for navigating among document windows.
  • New: Added DockWindow overload, which allows for adding a DockWindow, aligned to any valid SplitPanel instance – being it tab strip or split container.
  • New: Form.Closing and Form.Closed are now explicitly called for child forms when standard MDI is converted to Tabbed Document Interface.
  • New: Added ContextMenuService to centralize the entry point for displaying context menus across RadDock instance. Available are the following events:
    • ContextMenuService.ContextMenuDisplaying – allows the user to modify the menu items that are about to be displayed or completely cancel the request.
    • ContextMenuService.ContextMenuItemClicked – allows the user to override the default action performed upon a click of a menu item.
  • Fixed: DockWindow.Image property is now assigned to each RadMenuItem instance, associated with the window.
  • Fixed: ActiveWindowChanged will be raised initially if needed.
  • Fixed: Drag-and-drop of document windows is allowed directly on the design surface of Visual Studio.
  • Fixed: HostWindow now provides parameter-less constructor, which allows for proper layout persistency in some complex scenarios.
  • Fixed: Auto-hidden windows size is now properly updated.

RadForm and RadRibbonForm

  • RadRibbonForm now provides support for active/inactive states.
  • Fixed: A bug in RadForm which prevented the customization of themes in the Visual Style Builder.
  • Change: A slight change has been introduced in the BackColor, ForeColor and Font property serialization in RadControl and RadForm. The logic now is:
    • If the value comes from a theme or is inherited, it is not persisted
    • If the value is explicitly set locally, using the property setter (either at design or run time) then the property should be serialized.
    • Local property value may be restored to its default value by setting:
      • Color.Empty for the BackColor and ForeColor properties.
      • Null for the Font property.


  • New: Improved scrolling in hierarchy mode so that a single scrollbar is used for the whole grid (instead of each child view having its own scrollbar).
    To turn on the old mechanism, enable the scrollbars in hierarchy mode by setting the UseScrollbarsInHierarchy property to true. If you want the child view to be of specific height, handle the ChildViewExpanded event to limit the child view height:

    void radGridView1_ChildViewExpanded(object sender, ChildViewExpandedEventArgs e)
        e.ChildRow.Height = 200;
  • New: New ControlDefault theme
  • New: Ctrl+Home and Ctrl+End navigation
  • New:  CurrentView can changed programmatically
  • New: Shift+F10 opens context menu
  • Fixed: CellValidating fires twice when changing the current row
  • Fixed: CellBeginEdit fires twice for checkbox column.
  • Fixed: SelectedRows count is 1 after Columns.Clear
  • Fixed: Pinned columns are not displayed on top when grid is scrolled horizontally
  • Fixed: ValueChanged fires for all visible checkboxes when loading RadGridView
  • Fixed: Values entered when handling DefaultValuesNeeded aren't displayed until you click in other cell
  • Fixed: It is possible to paste text in a read-only cell
  • Fixed: Header row resizes when the form is minimized
  • Fixed: CellValidating event not showing amended Value when editing GridViewDecimalColumn
  • Fixed: Column chooser doesn't display all columns when there is only one column visible
  • Fixed: ErrorText tooltip is not visible when scrolling horizontally
  • Fixed: Alternating row color overrides selection color
  • Fixed: Exception when adding new row in hierarchy
  • Fixed: There is an exception when using tabbed child views and the second view doesn't contain data
  • Fixed: Null reference while updating datasource and RadGridView is in edit mode
  • Fixed:  Grid scrolls when changing checkbox value and filtering is applied
  • Fixed: RowValidating argument doesn’t contain the actual cell values
  • Fixed: BetFitColumns and BestFit Not Working in ChildGrivdViewTemplates
  • Fixed: Cell selection isn’t working when selecting a cell from the current row
  • Fixed: Combo box doesn't save its value when using keyboard and Enter
  • Fixed: Wrong editor sizing when current cell is partially visible
  • Fixed: update related to adding new rows externally
  • Fixed: reset filtering in hierarchy mode
  • Fixed: problems related to Property Builder clear columns operation
  • Fixed: PB exceptions when edit columns
  • Fixed: PB exception when open hierarchy constructed with Open Access objects
  • Fixed: PB serialization problems
  • Changed: PB theme and UI
  • Changed: behavior of auto generate columns, view new help topic
  • Changed:  AutoGenerateColumn property of GridViewTemplate visible in design-time
  • Fixed: exception, invalid parsing when filter expressions contains single quotes
  • Fixed: rebuild, refill data in hierarchy mode do not show rows in expanded views
  • Fixed: issues related to add/remove sorted columns in unbound mode
  • Fixed: issues related to new row and grouping operation
  • Fixed: issues related to add new row in hierarchy mode
  • Fixed: filtering problems related to MultiColumnComboCox column
  • Breaking  change: Removed GridViewTemplate.SortExpression property. Use SortExpressions property instead.
  • Breaking change: Removed GridViewDataColumn.SortExpression property. Use SortExpressions collection in ViewTemplate instead.
  • Breaking change: Removed GridBorderWidth and GridBorderHeight properties from GridTableElement. Use CellSpacing and RowSpacing properties instead.
  • Breaking change: changed RowValidating behavior. Now the event fires when the the ActiveEditor is closed.
  • Breaking change: added new methods in IContextMenuManager interface
  • Breaking Changes: the default theme for the GridView has been changed from Vista to Office2007 Blue. To use the old theme simply set GridView's ThemeName property to Vista.


  • RadMenu can now be highlighted via system keys (alt and F10);
  • Added a boolean HighlightMenuOnSystemKey property which turns on and off system key highlighting.
  • Added a boolean SystemKeyHighlight property which turns on and off system key highlighting.
  • Upgraded the control to use the new popup mechanism
  • Improved mnemonics support
  • Improved navigation and keyboard support
  • Breaking changes: The DropDownClosed event handler signature has been updated to use RadPopupClosedEventArgs.


  • RadMultiColumnComboBox uses the new popup mechanism. For more information see the TPF section above.
  • Completely new implementation of the AutoFilter behavior
  • Improvements in the drop-down behavior
  • Now support for Rotate on double-click in AutoFilter mode
  • Breaking changes: The PopupClosed event handler signature has been updated to use RadPopupClosedEventArgs.


  • RadTreeView now has a localization provider.
  • Added keyboard scrolling support via holding down the Ctrl key and scrolling with the arrows.
  • Added keyboard scroll to bottom and scroll to top by using the Ctrl + home/end.
  • Added keyboard multi-select by holding down the Shift key and pressing the up/down arrows.
  • Added two properties to control the horizontal and vertical scrolling speed. They are called HorizontalKeyboardScrollStep andVerticalKeyboardScrollStep.
  • Added two new public methods - ScrollToBottom() and ScrollToTop().
  • Added a public CollapseAll() method to RadTreeNode. CollapseAll() is invoked by the divide key for keyboard navigation.
  • Fixed: RadTreeViewTextEditor closes and saves its changes when RadTreeView loses focus.
  • Fixed: A bug which caused RadTreeView to throw an exception on end edit when RadTreeView is bound to a list of primitive types.
  • Fixed: When RadTreeView is in edit mode, the entered value is no longer lost on scrolling.
  • Breaking Changes: Removed the obsolete LabelProperty property. The AllowEdit property must be used instead.
  • Breaking Changes: Removed the obsolete MouseDownEditDelay property
  • Breaking Changes: The ApplyScrollOffset property has been made internal due to being for internal use only.
  • Breaking Changes: The following events have been removed due to being obsolete: BeforeLabelEdit, AferLabelEdit, BeforeExpand, AfterExpand, BeforeCollapse, AfterCollapse, BeforeSelect, AfterSelect, NodeExpand, NodeExpanding, NodeExpanded, NodeCollapsing, NodeCollapsed.
  • Breaking Changes: The following members in RadTreeNode have been removed due to being obsolete for more than one release cycle: Label property, MouseDown event, MouseUp event, MouseMove event, MouseEnter event, MouseLeave event, MouseHover event, CheckedChanged event, NodeCollapsed event, NodeCollapsing event, NodeExpanded event, NodeExpanding event, RightImageKey property, RightImageIndex property, StateRightImageKey property, StateRightImageIndex property, SelectedRightImageKey property, SelectedRightImage index property, RightImage property, SelectedRightImage property, StateRightImage property, ShowRightImage property, Depth property, LabelBounds property, IsExpanded property, HasRightImage property, IsVisible property, Key property, DataKey property.
  • Breaking changes:  The events Selected and Selecting have been marked obsolete. They still work but will be removed in a future release the SelectedNodeChanged and SelectedNodeChanging events should be used instead.


RadRibbonBar comes with many small, but important improvements, the most important of which is the addition of new popup behavior, which makes RadRibbonBar fully compliant with Microsoft’s Office 2007 guidelines. In addition, Group Collapse Order (weights) have been added, which give you the freedom to set which group will collapse when on form resize. Here is the complete list of what is new and what has been fixed:
  • Added new Popup behavior;
  • Polished the shape of the tabs;
  • Added shadow support for tabs;
  • Added vertical separators between buttons in button groups;
  • Polished the application menu by improving the round-rect shape;
  • Added support for active/inactive states when in RadRibbonForm;
  • Polished the system buttons and MDI menu buttons;
  • Fixed: Visual glitches when in RadRibbonForm and under Windows 7 related with the caption appearance and text painting have been addressed;
  • Fixed: MDI buttons issue;
  • Fixed: layout bug with Ribbon’s Help button;
  • Fixed: HTML Like TinyHtml parser bug;
  • Fixed RadGallery issue with resizing;
  • Fixed few issues with gallery popup;
  • Fixed RibbonBar Group popup issue;
  • Fixed ribbon group menu opening bug.
  • Breaking changes: The styles for all button elements and their inheritors (check boxes, toggle buttons etc.) have been changed. If there are any custom themes, they should be updated.


RadScheduler comes with several important enhancements such as improved rendering feedback and better responsiveness in all drag-and-drop operations. The SchedulerBindingDataSource now handles property changes in appointments more efficiently as well. Another important feature that we have added to RadScheduler is Resource grouping, which will allow you to group different resources in a single scheduler instance. The resources in all views can be grouped.
  • Fixed: Memory leak issues when switching between the scheduler views;
  • Fixed: Property change notification events are now fired when an appointment is dragged or resized. As a result the changes that happen due to these actions are also persisted to the data source by the SchedulerBindingDataSource (if used);
  • Fixed: Persist the mouse selection in month view when the user creates a new appointment using the built in context menu.
  • The SchedulerBindingDataSource component now supports binding to occurrence exceptions.
  • Breaking changes: IEvent and IResource now inherit from IDataBoundItem so implementations of the first two interfaces will now have to implement the IDataBoundItem interface. The SetDataItem data item method can be implemented explicitly like bellow:
    #region IDataBoundItem Members
    public object DataItem
            return this.dataItem;
    void IDataBoundItem.SetDataItem(object dataItem)
        this.dataItem = dataItem;
  • Breaking changes: in the Update method of the ISchedulerProvider<T> interface an additional string propertyName  parameter was added to allow for much more efficient data source updates on property changes in the scheduler.

Visual Style Builder

  • New: Added the option to apply predefined themes for the currently loaded control.
  • New: The Visual Style Builder uses RadForm and has improved UI
  • Fixed: The PropertyNotFound exception which occurred when the Visual Style Builder is opened in the Visual Studio designer .

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.