Advanced ComboBox .NET

for Windows Forms

  • Advanced Combobox, supports multi-column data display
  • Advanced filtering, grouping and sorting
  • Various formats of column data rendering
  • Includes Currency, Integer, Decimal, Date or DateAndTime, etc.
  • Complex data-binding as well as un-bound modes
  • Supports NotInList event;  Advanced Auto-completion/Suggest features
  • Advanced Data export and preview features
  • Image combobox, Font, Drive list views
  • Supports Read-only mode
Overview

BinaryComboBox is an advanced Microsoft .NET Windows Forms control, providing a flat styled, feature rich and highly configurable, data-bound/unbound, multi-column data display capable ComboBox control.

 

It is an extended replacement for the standard .NET ComboBox control, providing a wealth of impressive features which makes it easier for you to develop and deliver more functionality in less time.

 

With the powerful design-time support, you will not need to write a single line of code to get this control setup and start working for you.

Built-in and Custom rendering styles"Sorting", "grouping" and complex data "filtering" capable multi-column display mode, with full support for complex data-binding

 

BinaryComboBox .NET supports powerful data views.

Apart from the fact that you can filter and sort data yourself by supplying filtered data to the control via the data-binding, the control also supports filtering, sorting and grouping by your users, when the control is in its multi-column data view mode.

 

The filtering feature supports two modes of data filtering:

 

  • Built-in filter
  • Custom expression based filtering

 

 

Your users will be able to create "query expressions" in the Custom expression based filtering mode, and filter data themselves, on top of the filtered data that you may have provided in your application via the control's data-binding.

 

With Custom expression mode filtering, your users can write "easy to write" expressions, to perform multiple levels of data filtering.

he built-in filtering mode supports filtering data on a user specified/chosen column in the control's multi-column list-view.

The control also provides support to let the developer decide whether or not, to allow this extended user-interface of filtering, sorting and data grouping facility. This feature can be optionally enabled/disabled by the user through a context menu or by using the UI controls in the filtering/grouping panel.

 

The screen-shot gives you a glimpse of the control in its data-bound multicolumn mode, with all the extended filtering, grouping and sorting options switched on.

 

Data exporting / reporting:

 

The control, in its multi-column mode, can let the users to export/save the view data into a CSV output file.

This feature can also be enabled/disabled, by simply setting a property setting.

This option can be enabled both using the UI controls, as well as through a context menu.

Your users will be able to create "query expressions" in the Custom expression based filtering mode, and filter data themselves, on top of the filtered data that you may have provided in your application via the control's data-binding.

 

With Custom expression mode filtering, your users can write "easy to write" expressions, to perform multiple levels of data filtering.

he built-in filtering mode supports filtering data on a user specified/chosen column in the control's multi-column list-view.

The control also provides support to let the developer decide whether or not, to allow this extended user-interface of filtering, sorting and data grouping facility. This feature can be optionally enabled/disabled by the user through a context menu or by using the UI controls in the filtering/grouping panel.

 

The screen-shot gives you a glimpse of the control in its data-bound multicolumn mode, with all the extended filtering, grouping and sorting options switched on.

 

 

Multi-column drop-down list:

 

BinaryComboBox .NET supports a multi-column drop down list mode!

All you will need to do is set DropStyleIsMultiColumn property, and the control will instantly support data display in multi-column drop-down list mode.

 

Multi-column drop-down list feature supports both ComboBox DropDown style as well as DropDownList style!

This feature allows you the choice of either selecting items directly from the multi-column drop-list or to type in directly to the combobox.

This comes handy when your users know what they are typing in and don't have to necessarily use the multi-column drop-list (although they still can).

The control displays a pretty-looking drop-down window, displaying message to the user, to let them know that the control does not have any data to display at that point in time, when the user clicks on the drop-down button.

This can typically happen when the control is not bound to a data source, or there is no data in the attached data-source to display, at the moment.

 

This feature comes in handy to make your UI and your user's UX (User experience) enjoyable! Rather than to display an empty window to indicate there is no data to display, a pretty-looking window (as you can see in the left hand side) displaying a no-data-available message, makes the UX enjoyable.

 

The message text is configurable by the developer, via a property setting on the control.

Multi-column mode renders column data in varying data formats

 

The control when run in its multi-column mode, is capable of rendering column data in various data format types like so:

 

  • Currency data type; where you can specify how many decimal places you want the control to display the data
  • Integer data type; where you can ask the control to render the thousands commas separator
  • Decimal data type; where you can ask the control to render decimal value with how many ever decimal precision you want it to render
  • Date or Date and Time data type ; where you can ask the control to render the date as just date or with full custom date string as desired
  • Text data column; this is default mode of rendering the data in the multi-column view.

 

Note that the view will still render the data as string data, but it will format it to any of the above listed data formats before rendering it in the view and then render it as text data.

 

The screen-shot below demonstrates the control rendering the various column data in the desired data formats:

Powerful design time support, with extended items in the designer-action list:

 

The control comes with strong design-time support. For enabling easy setup of all crucial and important properties, the control implements custom code to support displaying these properties via the design-time smart tags UI - i.e. the designer actions list pop-up.

 

The list includes properties, for example, for you to easily complex bind the control to an IBindingList datasource With this design time infrastructure in place, you will not need to write a single line of code to get the controls working for you.

Data binding:

 

BinaryComboBox .NET supports both data-bound and unbound modes, both in its standard (single column) and multi-column drop-down data display modes.

 

The data-binding support includes working with DataSources implementing interfaces IList, IListSource and IBindingList. Data-binding to multi-column mode is made extremely simple, especially with our new custom design-time designer-action list feature. You won't need to write a single line of code to data-bind and even to complex data-bind the control.

Of course, to enable the other more advanced features in multi-column display mode, like grouping of data, plugging-in your own IComparer implementation for custom sorting of columns, etc, there are other relevant properties to set!

 

But all that is needed is setting up some properties, typically, without even leaving your IDE's designer.

Multi-column mode without header and footer:

 

BinaryComboBox .NET multi-column drop-down list can also be configured to be displayed without the header and footer areas.

Advanced Sorting capabilities

 

a) Sorting on string

 

The control exposes properties and events to support advanced sorting capability for sorting data in the columns (while the control is in multi-column style). Apart from the default built-in sorter implementation, you could choose to plug-in your own IComparer implementation to sort any type of column data.

b) Sorting on numbers

 

For example, you could choose to plug-in your custom IComparer implementation to sort a given column whose data you judge to be of, say, percentage types, or belonging to a particular category type!

 

The control exposes a property to pick your custom IComparer implementation, and at run-time will execute your custom sorting implementation for the given column.

The control also raises events while about to sort, so that you can even cancel (if need be!) the sorting (on a given column) that is about to happen.

 

You get that level of fine-grain control via properties and events in this control.

Data grouping based on columns

 

The control provides out-of-the-box support for grouping of data, while it is set up to run in multi-column data display mode.

 

Via simple-to-use properties, you can set-up grouping-based multi-column data display, by specifying which column to group the data by, and the control will group the data based on that column and display the multi-column data view.

By using the features of DataView object, you can filter your source data and assign the filtered data as the data source to the control and thereby be able to view just the filtered data, in the control's multi-column data display view.

 

This feature, of course, is also available in the control's standard (single-column) data display mode.

Ability to Drag-and-drop of column headers

 

The control supports the drag-and-drop of column headers in the multi-column drop-list window, thereby allowing your users to visually re-position/re-order the columns.

Image Support

 

While in the image combobox mode, you can show images next to the items on the drop down list, in both normal and selected states of the control.

 

Users can specify size of the image to be drawn in the image combobox mode. You are now relieved from the tedious pain of overriding various custom draw routines of ComboBox control.

Image combobox with rectangle around the image

 

The control has the ability to draw a rectangle around the image.

With a simple property setting, this rectangle drawing can be switched off.

ComboBox text Auto-Completion

 

The control automatically selects the best match of an item from the list, as you type in a text, saving time selecting items from a possible long drop-down list.

 

Also, the control exposes a property, to let the user decide whether the Auto-Completion feature will be case-sensitive or not.

A performance efficient routine has been added to support handling faster Auto-Completion, especially to cope-up with high-speed data entry users.

Auto-Completion feature is available on Data-bound mode as well!

 

The control supports auto-completion of text in data-bound mode - where it will be able to retrieve any closely matching data items from the attached data-source, while you type-in text into BinaryComboBox control.

Customization of multi-column auto-completion

 

A new property AutoCompleteStyleForMultiColumnModeIsMultiColumn has been introduced.

 

When the control is in its multi-column mode, and the Autocomplete feature is switched ON, this new property when switched ON will display the "auto-completion suggestion list" drop-down list with multi-columns of data (i.e. all columns data from the data source) rather than the default behavior of displaying the auto-completion suggestion list with only one column of data that is relevant to the values in the DisplayMember column.

 

With this new feature, when the user types-in characters into the text area of the combobox, the auto-completion "suggestion list" will display the list with all columns of data as is closely relevant to the text characters so far typed-in by the user.

Read-only feature support

 

BinaryComboBox .NET supports a property called ComboBoxIsReadOnly , which when set to true, can set the Edit control portion of the ComboBox control to read-only mode!

 

This feature lets your users to perform clipboard operations on the ComboBox text, while at the same time, blocking them from editing the combobox text.

Ability to cancel the drop-down list window

Support for the popular NotInList event

 

The control raises an event NotInList, whenever the user types-in text (item) into the control's text area, and that text (item) is not available in the control's current list of items.

This event is available for both the control's Multi-column drop-list mode and the standard mode.

Support for the popular NotInList event

 

The control raises an event NotInList, whenever the user types-in text (item) into the control's text area, and that text (item) is not available in the control's current list of items.

This event is available for both the control's Multi-column drop-list mode and the standard mode.

 Enhanced display styles supported

 

  • Rendering the "VS.NET" fame Flat style
  • Rendering the standard "windows" style combobox mod
  • Ability to fully support Control painting with custom colors (with Alpha-blending support)
  • Mouse hovering effects
  • Automatic support for a Drive List style
  • Automatic support for a Font List style
  • Automatic support for emulating XP theme rendering
  • Automatic identification of the Operating system