Version 2009 vol 2
Seven New Skinning Options for Windows Forms Controls
In our continuing effort to address your business needs, we've introduced seven new professional Skins/Themes in DXperience v2009 vol 2.
Expression Editor Now Available in Grids
In previous versions, the only way to specify unbound column values was to handle an event and write the appropriate code. The same applied if you needed conditional formatting driven from complex criteria. With this new release, DevExpress WinForms controls now allow you to address both these requirements using an intuitive design-time editor.
An updated version of the DevExpress Expression Editor (the first version was introduced in XtraReports v2008 vol 2) is now available to our main WinForms Grid controls. You can use it to specify formulas for unbound column values or to set up conditional formatting. The DevExpress controls that support this new feature are the XtraGrid and XtraPivotGrid.

For unbound columns, you can also enable the end-user customization of expressions. Simply enable an appropriate option and the column's header menu will include a link to the Expression Editor.

'How to' Video: WinForms Grid - How to Use the Expression Editor
New Functions
Not only have we shared the Expression Editor between our main WinForms Grid controls, we've also extended the supported function set with about 50 new functions. These include the following:
- Math: Abs, Cos, Sin, Atn, Exp, Log, Rnd, Tan, Power, Sign, Round, Ceiling, Floor, Acos, Asin, Atn2, BigMul, Cosh, Log10, Sinh, Tanh.
- String: PadLeft, PadRight, IsNullOrEmpty, Ascii Char, ToStr, Replace, Reverse, Insert, CharIndex, Remove.
- DateTime: GetDate, GetMilliSecond, GetSecond, GetMinute, GetHour, GetDay, GetMonth, GetYear, GetDayOfWeek, GetDayOfYear, GetTimeOfDay, Now, UtcNow, Today, AddTimeSpan, AddTicks, AddMilliSeconds, AddSeconds, AddMinutes, AddMinutes, AddHours, AddDays, AddMonths, AddYears.
Note that this function list matches the list of new functions supported by eXpressPersistent Objects.
'How to' Video: Reporting Tool - Using Built-in Functions for Calculated Fields
Export to XLSX is Now Available
The XtraPrinting Library - our data printing and export library for Windows Forms - has been extended with XLSX support. You can now export your grids, tree-lists, vertical grids, pivot tables and banded reports to the latest version of Excel's file format. Because the new format supports more spreadsheet columns and rows (16,384 columns and 1,048,576 rows compared to 256 columns and 65,536 rows in XLS), you can now export bigger datasets.
Rich Text Editors in Grid Cells
Previously our XtraRichEdit engine could be used only to display rich text content within data-aware control cells. In addition to read-only mode, you can now use the same repository item to edit HTML, RTF, Plain Text, MHT and DOCX data stored in your data fields.

Note: This feature shipped in a minor service update for DXperience v2009 vol 1.
Animated Icons in Tab Page Headers and Labels
You can now assign animated GIF images to page headers and labels and their animations will be displayed correctly.

Incremental Searching in ListBox Controls
Your end-users can now search for information more effectively within our ListBox Controls.

Customizable Menu Contents in Filter Controls
You can now customize the content of all menus used within Filter Controls. This allows you to remove unnecessary columns or operations from built-in menus.
In addition to menu customization, you can also handle newly implemented events to customize data editors on the fly.
More Data Shaping Options for End-Users
When data is grouped against a date-time field, end-users can now use the group column's context menu to change the group interval. They can choose between yearly, monthly, daily or Outlook style grouping.

The same menu now allows you to invoke a dialog specifying group summaries for a column.

Miscellaneous Enhancements
- A new option allows cell values to be copied to the clipboard without the corresponding column header captions.
- We've significantly overhauled the LayoutView painting. We've changed how the main toolbar and cards are painted and added some custom draw events.
- XtraGrid now supports merged cell printing.
Version 2009 vol 1
New Skinning Option for Windows Forms Controls
DXperience v2009 vol 1 extends our Skinning engine with yet another unique visual style – Springtime.

Windows Vista Style Filtering for Date-Time Columns
You can now easily filter data (date-time columns) using a Windows Vista style dropdown window.

Note that end-users can easily select multiple dates, month or years by using drag and drop.

Custom filter conditions are also allowed. You can populate the list below the calendar with any criteria you need, for instance "Last Fiscal Year". Note that if you do so, end-users will see the information about the actual start and end dates in the filter item's hint, without you having to write any code.

Sorting by Summary - End-User Capabilities
End-users can now sort group rows based on group summary values. For this purpose, we've added appropriate items to grouping column header menus.

When data is sorted by group summaries, a special glyph is displayed within the corresponding grouping column's header.
Captions for Grid Views
You can now show titles for grid views, including the root view and all details. Newly introduced properties allow you to change font settings, alignment and foreground color for the title's text.

Improved Grid Layout Persistence
We now provide support for automatic saving and restoring of format conditions.
Format conditions specify the appearance of cells or rows depending on their data. Style conditions can now be saved when the grid layout is saved to a data store (for instance, an XML file). Similarly, style conditions are correctly restored when loading a grid layout. You can therefore create style conditions at runtime and they will be correctly stored and restored without any additional code.
In addition, you now have the ability to automatically save and restore the information on sorting group rows by summary values. Since end-users can now change how group rows are sorted, the grid saves and restores these settings with other layout options.
Advanced Incremental Filtering in Lookup Editors
If text editing is enabled in a GridLookUpEdit control, an end-user can search for rows by typing text within the edit box. Previously, end-users could only search for entries that begin with the specified text. The current default behavior is to search for rows that contain the entered text at any position in the row's value. You can obviously enable the previous behavior, if necessary.

Miscellaneous Enhancements
- You can now print or export only the currently selected rows.
-
By default, the grid displays detail data compactly, without extra indents. The new version allows you to change detail view paddings. (Screenshot)
-
Hints for truncated summary values are now displayed. (Screenshot)
-
In Grid Views, you can now specify maximum width for columns. This option is in effect if the auto-width feature is enabled for a Grid View. In these cases, increasing the grid's width proportionally resizes all columns. If you want to maintain a given width for certain columns, specify their maximum width.
- New options have been added to Banded Views that allow you to prevent all bands from being resized and moved.
- With this version, copying cells to the clipboard also copies column captions to the clipboard, allowing easy identification of cell data.
- By default, when an end-user navigates through grid cells using the TAB key, all row cells are processed one after another. In the new version, you can use the TabStop option to prevent cells from being focused by the TAB key.
- When the grid is bound to a data source, columns are created for all fields in the data source. By default, the Caption properties of columns are set to empty strings. Now the grid is smart enough to transform, say, "CustomerName" to "Customer Name".
- You can now enable automatic summary calculation for columns displaying TimeSpan values. No coding is required.
Auto-Collapsing Panels
You can now enable the auto-collapsing feature in the SplitContainerControl. With this feature, an end-user can click the splitter to minimize one panel, and thus maximize another.

Prompt Text in Empty Editors
You can now easily enable input prompt text for editors with null values. This text immediately disappears when the editor gets focus.

Advanced Tooltips for Tab Control's Pages
Our tab control now supports SuperToolTips so that you can display rich information about tab pages, including images and memo fields.

Custom Text Representations of Check Box Values
If a grid column or tree list column contains Boolean values, you can use CheckEdit controls for data visualization. When grouping data against these column, displaying their filter dropdown list and in some other instances, true and false values are represented by "Unchecked" and "Checked" strings. You can manually specify the strings that should be displayed instead of true and false.

Minor Enhancements
You can show error icons for editors using the DXErrorProvider component. By default, error icons are displayed at a control's left edge. You can now change the icon's location for standalone editors.

You can now enable tooltips for a track bar control's indicator, to display the current value. By default, only the value is displayed. However, you can handle an event to apply display text formatting or to provide custom display text.

- Built-in support for ICO files have been added to our image editors.
- New skin elements have been added - TabPageButton and TabHeaderButton. These elements are used to paint XtraTabControl's Close buttons. Previously, these buttons were painted using another skin element, that was also used by other controls. Now, a dedicated skin element is available.
Version 2008 vol 3
New Skinning Option for Windows Forms Controls
DXperience v2008 vol 3 extends our Skinning (Application Wide Themes) with two additional visual styles. The first is the "Dark Side" offering you another version of our black UI. The Pumpkin skin extends this with Halloween themed images.
For the complete list of skins (application themes) available to you with our WinForms product line, please visit the following page:
http://www.devexpress.com/Products/NET/Controls/WinForms/Skins/
Blog: The Pumpkin Application Skin - Coming Soon to a Theater Near You...
Video: Application Wide Skins
Version 2008 vol 2
New Skinning Option for Windows Forms Controls
DXperience v2008 vol 2 extends our Skinning engine with yet another unique visual style – the Summer Skin.

HTML Style Text Formatting in WinForms Controls
Historically, Windows Forms controls never allowed you to emphasize portions of their text. For instance, you couldn't apply bold formatting to a few words within a label text.
With version 2008 vol 2, we have added this capability to our Label, Check Editor and Grid Control (for column and band headers). You can now specify captions for these elements using HTML-style markup - using the following tags: <br>, <color>, <size>, <b>, <i> and <u>.
Server Mode Performance Improvement
If the XtraGrid is in server mode, focused row and selection are not restored after sorting, grouping or filtering operations. This significantly improves application performance.
You can enable focused row and selection persistence by enabling a single option.
New Built-in Comparison Operator in Filtering Dialogs
The newly implemented Contains operator increases the count of built-in comparison operators. It allows less experienced end-users to easily find data and avoid using the Like operator which requires wildcard knowledge.
Version 2008 vol 1
New Skin Options for Windows Forms Controls
We've added three new skins to our Windows Forms product line - they include the Holiday, McSkin, and Valentine's Day skins.
LINQ Server Mode
When the grid control works in server mode, it delegates all data processing to the server and downloads only records to be dislayed on screen. This allows you to dramatically increase performance against large datasets. Previously, this data operation mode could be enabled only with XPO data sources. Now, any LINQ query provider is also supported.
Layout View's Enhancements
In version v2008 vol 1, the Layout View's functionality has been significantly extended by introducing new customization and layout features:
- Runtime Field Layout Customization in Layout View
This feature allows end-users to easily customize card field layout at runtime via drag and drop operations, just like you would at design time. Clicking the Customize button at the top of the View invokes the Customization form that provides customization capabilities.
Basic mode:

Advanced mode:

With a few lines of code you can save the customized layout to a data store (e.g. an XML file) when the form is closed and then restore the layout on a form load event.
- New Layout Elements
The Layout View now fully supports a tabbed interface, thus giving you a way to present information in a more compact manner.

You can add static labels and separators to cards:

Groups and fields can display small icons next to the labels, making your applications look more attractive.

- Stretching Cards to View
Cards can be horizontally or vertically stretched to fully fill the View's width or height. This allows you to emulate detail entry forms.

You can optionally display multiple cards simultaneously so that they are stretched to fit the control's dimensions.
Filter Dropdown Lists with Check Boxes
The grid control can now display check boxes within filter dropdown lists. This allows end-users to filter columns against multiple values on the fly. They simply need to select required values and click OK. The grid will filter out rows that don't contain checked values.

Version 2007 vol 3
Layout View
With the release of version v2007 vol 3, our WinForms Grid Control introduces a new data representation format - Layout View. Like the Card View, this View type displays data records as cards. The difference is that it allows to present data more compactly. You can freely customize field layout and thus use form space more effectively. The Card View, on the other hand, simply arranges fields one under another.
The following field arrangement features are supported by the Layout View:
- Fields can be freely arranged into any number of rows and columns.
- Fields can span over several adjacent fields.
- Fields can be combined into groups, as if they were added to a group box.
- Empty regions can be added to cards, if required.

The Layout View can display a single card centered within the view, as well as multiple cards arranged into columns and rows.

The Layout View's features are powered by the comprehensive layout management library used in the XtraLayoutControl Suite. Note, however, that not all the layout customization features have been adopted for use in Layout View. Some features like end-user layout customization and tabbed groups aren't yet supported by the XtraGrid, but will certainly be implemented in forthcoming updates.
New Components
The XtraEditors Library introduces two new button controls and a new component that makes it easier to validate user input.
DropDownButton
This button can be associated with a popup control or a context menu. End-users can invoke the associated control by clicking the button's drop-down arrow.

CheckButton

DXValidationProvider
Previously, in order to validate data within standalone editors, you had to manually subscribe to Validation events and invoke custom validation code. The DXValidationProvider component looks at the validation task from a different standpoint. With this component, you don't need to write code. Simply create validation rules and associate them with editors.
The following image shows how you can use the design-time editor to create validation rules and associate them with editors:

Embeddable MarqueeProgressBar Сontrol
In previous versions, MarqueeProgressBar could only be used as a standalone control. With this release, it can be integrated into toolbars, ribbons, grids and all other Developer Express container controls.

Animation
The PictureEdit and ImageEdit controls now support animated GIF files.

GIF animation support is also available within container controls (such as the XtraGrid, XtraTreeList, XtraBars, etc). As an example, the following image shows how you can enhance a grid control's functionality using animated GIF files:

Displaying RTF Data in Container Controls
Container controls (such as the XtraGrid, XtraTreeList, XtraVerticalGrid, etc) can now display RTF data within their cells (read-only mode). This allows you to show formatted text with images without using any custom draw features.

Version 2007 vol 1
Our Server-side data management mode is now available. Unlike standard ADO.NET adapters that would require the retrieval of the entire record set, this new mode allows the XtraGrid to only fetch the records that need to be displayed on-screen - giving you significant performance benefits against very large datasets.
Better record set loading performance is not the only benefit of this new server-side data mode. Numerous key grid operations - sorting, grouping, filtering and summary calculations - are now performed on the server. As you can imagine, performance is highly responsive when large datasets are encountered.

A few notes about this new option. Since all data management operations are performed on the server, you need to rely on the server to perform them correctly. You cannot sort or filter by display text. Sorting and filtering mechanisms are server-specific and cannot be customized.
For additional information about Sever-side data management mode, please refer to the XtraGrid Online Documentation.
New Skins for Office 2007 Imitation
Three new skins are available: Office 2007 Blue, Office 2007 Black, Office 2007 Silver.
These new skins are shipped in a separate assembly: DevExpress.OfficeSkins.dll. To use them in your next application, you will need to register this assembly as you would with any custom skin project.
.NET Framework 1.x Support
DXperience v2007 vol 1 no longer provides .NET Framework 1.x support. If your projects require .NET Framework 1.x, please use DXperience v2006 vol 3 or older. We will continue to provide bug fixes for older version of DXperience.
Version 2006 vol 3
Fade Animation Support
Animated hot-track effects are now supported in our .NET Windows Forms products. When end-users hover Ribbon elements, command buttons, check boxes, editor buttons or main menu items, these elements are highlighted using an animated fade effect. Fade animation is also used to restore an element's original state when the mouse pointer leaves this element.

Advanced Ribbon-Like Tooltips
First, we enhanced our RibbonControl with support for "super tooltips". We added a SuperTip property to the RibbonPageGroup and BarItem classes, enabling advanced tooltips display for group buttons and all types of bar items.

... We then made it possible to use advanced tooltips with any control from our Windows Forms product line. For instance, a simple button or a check box now also exposes a SuperTip property thus allowing you to provide consistent hint windows throughout your applications. And note that regardless of the control, the SuperTip property provides a designer dialog that makes it much easier to customize hint content at design time.
Version 2006 vol 2
Advanced Filter Editor
Filtering on steroids - with vol 2, you will be able to build filter criteria of any complexity - create any number of conditions and combine them in any manner using any logical operator.
The new filter editor will be available to end-users via the Edit Filter button located within the filter panel. This button is enabled by default, but can be suppressed using a View's OptionsFilter.AllowFilterEditor property.
Extended XtraPrinting Library Support
We have re-designed the XtraGrid Suite and XtraTreeList Suite to better support the XtraPrinting Library. The content of these controls can now be correctly exported to all formats supported by the XtraPrinting Library, including PDF.
Version 2006 vol 1
-
A new GridLookUpEdit editor has been added to the library. It displays a read-only Grid View, Banded Grid View or Advanced Banded Grid View within its dropdown. This enables you to enhance lookup lists by providing custom cell layouts, displaying images within cells, use advanced data representation features such as data grouping and summaries, etc.

-
Filter smart tags are now supported. These smart tags replace the functionality previously available only via filter buttons - you can click them to invoke filter dropdowns. By using smart tags rather than filter buttons, youa re able to make column headers more readable since they only appear when a user hot-tracks a column header. Use the OptionsView.HeaderFilterButtonShowMode property to switch between smart tags and filter buttons.

-
Cell Selection is now supported in grid and banded grid Views. While in cell selection mode, end-users can select individual cells or blocks of cells. The selection can then be copied to the clipboard using standard shortcuts or can be processed programmatically. To enable cell selection mode, set the GridOptionsSelection.MultiSelectMode property to GridMultiSelectMode.CellSelect. The selected cells can be accessed via the GridView.GetSelectedCells method.

- Vertical scrolling performance has been significantly improved.
-
The ColumnView.CustomRowFilter event allows you to control row visibility in a view regardless of the applied filter condition. For instance, you can hide rows within a data source so that they are invisible even when no filter is applied.
-
The GridView.MeasurePreviewHeight event allows you to specify the required height of preview sections in pixels.
- Pressing the Embedded Navigator's Delete button now deletes all selected records. Previously, this button affected only the focused row.
-
Master-detail buttons are painted in black or grayed out depending upon whether detail rows contains data. The GridOptionsDetail.SmartDetailExpandButtonMode property determines whether none, only the default or all details need to be checked.
- End-users can now click the mouse wheel and then move the pointer to the direction they want the view to be scrolled. The further the pointer is from the click position the faster scrolling is performed.

-
You can now use the CardOptionsView.ShowFieldCaptions property to hide field captions.
-
A detail tab is displayed even if a master row contains a single detail View (provided that the GridOptionsDetail.ShowDetailTabs property is set to true).
-
You can now browse editable data without immediate editor activation. Set the ColumnViewOptionsBehavior.EditorShowMode property to EditorShowMode.Click to activate this mode. The first click focuses the cell but does not invoke its editor. One more click is needed to enter edit mode when using this option.
-
You can now disable row value caching that takes place before updating a row. This can increase performance, but the grid won't be able to restore entered data if data source validation fails. See the ColumnViewOptionsBehavior.CacheValuesOnRowUpdating property description for more information.
-
You can now set two captions for a column header - one displayed when the column is visible and another displayed when the column header is within the customization form. Use the GridColumn.CustomizationCaption property to specify the second caption.
-
You can now insert glyphs with alpha channel (32 bit) into column and band headers. From now on, you can bind ImageCollection component instead of the standard System.Windows.Forms.ImageList to a view via the view's Images property. Visual Studio 2003 or higher is required to work with the ImageCollection component.
- Bands can now be hidden by dragging their headers away from the band panel. Previously, this was only possible for columns.
- Translucent colors for focused and selected rows are now supported.
-
A GridOptionsView.ShowPreviewLines property has been added, which specifies whether preview lines are to be displayed.
-
The new GridColumn.GetBestWidth and ColumnView.CalcColumnBestWidth methods allow you to calculate a column's best width. This is the minimum width required to fully display a column's contents.
-
The GridView.LevelIndent and GridView.PreviewIndent properties can now be modified (in previous versions they were read-only).
-
The ability to insert custom menu items at any position within the grid's standard menus via the GridView.ShowGridMenu event.
-
A Wait cursor is displayed while the BestFitColumns method is being executed.
- ColumnView.DeleteSelectedRows now deletes the focused row when Multiple Selection mode is disabled.
- End-users can now focus details by clicking corresponding tabs.
-
When getting the HitInfo data for a group footer, the RowHandle property will refer to the corresponding group row.
-
The ColumnView.GetRow and ColumnView.GetDataRow methods called for a group row will return the first data row in a group.
-
The ColumnView.ColumnFilterChanged event fires when the Enable Filter check box is toggled.
-
Detail views are not displayed for empty ArrayList data sources (provided that the GridOptionsDetail.AllowExpandEmptyDetails option is set to false).
- Group rows remain expanded when a filter applied via the Auto Filter Row is changed.
-
Colon at the end of card row caption is not displayed if the row's Caption property is blank.
-
The ColumnView.ShowFilterPopup() method allows you to invoke the filter popup programmatically. For instance, this can be used to invoke the popup in response to a keyboard shortcut.
-
A RowCountChanged event has been added to views.
- Row state information (focused, selected, etc) has been added to EventArgs of the RowStyle and RowCellStyle events.
New Skin Options
Two new skins have been added - iMaginary and Lilian. Click the desired image below to review their appearance when applied to an application built with Developer Express controls.
Version 3
Data Management
- Redesigned Data Controller - The new data controller performs sophisticated data processing and does not delegate data specific operations to the underlying data source.
- Performance has been significantly improved when working with non-database sources (IList, IBindingList, etc) - up to ten times faster in certain scenarios.
- An improved mechanism for mass updates reduces flickering to a minimum when the grid's layout changes.
-
Automatic filtering is available in the XtraGrid for any data source since the grid now filters the data itself.
-
The GridControl.LevelTree property is now used instead of the GridControl.LevelDefaults property to associate Views with individual master-detail relationships. The GridControl.LevelTree reflects the hierarchy of the master-detail relationships in the underlying data source.
-
It's now possible to display only specific master-detail relationships from the underlying data source Within the XtraGrid. By default, the grid displays all master-detail relationships found in the data source. With the GridControl.ShowOnlyPredefinedDetails property set to true, the grid displays only those relationships which have entries in the GridControl.LevelTree tree.
-
Automatic creation of detail views for properties implementing the IList interface - If a specific property in the grid's data source implements the IList interface, a detail view will be created automatically to display the contents of the list referenced by this property.
New XtraGrid Features
- Custom buttons can now be embedded within the Data Navigator
- View Repository
Now you can easily create and customize any number of Views regardless of the bound data source's structure.

- Feature Browser

Features Applicable to All View Types
- Selected rows now remain selected when data is sorted in multiple selection mode.
-
Unbound columns. These can be added and used along with bound columns. Specify an unbound column's type via the column's UnboundType property and handle the view's CustomUnboundColumnData event to provide and persist the data for this column.
-
A new CustomColumnDisplayText event can be handled to provide custom display text for any (bound or unbound) column. This text will also be used when printing or exporting the grid and when sorting against display text is applied against a column.
- Sorting data by values or display text.
-
Custom sorting. The View's CustomColumnSort event can be handled to implement custom sorting logic.
-
Filter history for columns and Views. An end-user can quickly access and apply recently used filters.

- The filter panel now displays a check box that allows end users to temporarily disable the currently applied filter criteria.
-
A View's DeleteRow method can now delete both data and group rows (in grid views). To delete the selected records, use the DeleteSelectedRows method.
-
A column's Tag property can be used to associate any object with a column.
-
Views now expose a CopyToClipboard method that copies the selected record's content to the clipboard.
-
A new Appearances page in the grid control's designer dialog allows you to easily set up styles for individual grid elements.

GridView, Banded Grid View, Advanced Banded Grid View Features
- Retaining the expansion state of group rows when data is sorted.
-
Grouping by intervals. Text columns can be grouped by the first characters. Date-time columns can be grouped by month, year or MS Outlook 2003 style.

- Custom grouping.
- Sorting group rows by summary values.
- New Item Row available in group mode.
-
A customizable (top or bottom) position for the New Item Row.

-
A new Web paint style. Use the view's PaintStyleName property to apply this paint style.

-
A new Office 2003 paint style for group rows.

-
Displaying images in group rows when grouping by columns that use ImageComboBoxEdit editors.

-
An automatic data filtering row.

-
Cell merging.

-
Custom logic for cell merging can be implemented via the view's CellMerge event.
-
A new RowStyle event allows you to provide custom appearances for individual rows.
-
New OptonsSelection.EnableAppearanceFocusedRow and OptionsSelection.EnableAppearanceFocusedCell properties allow you to disable styles for the focused row and cell respectively.
Card View Features
-
A new Customize button allows end-user sorting, filtering and field visibility customization.

- Multiple card selection.
-
A zoom button is now displayed in Card Views allowing end-users to zoom Card Views.

-
Visual feedback when adding new records.

-
On-form field selection at design time. You can click any field to select it and display its properties within the Properties window.

-
Images within card captions. You can supply images to card captions by handling the CustomCardCaptionImage event.
-
Collapsing and expanding individual cards. The view's OptionsView.ShowCardExpandButton property specifies whether expand buttons are displayed within card captions.
