it-partners Home   |  Site Map
home products downloads purchase support corporate about us
.NET controls ActiveX (COM) controls
List Controls for .NET WinForms itGrid   |   itCombo


List Controls for .NET WinForms
is a .NET custom control package including
itList and itCombo.


Version 1.0.2555.23277

Includes editions for .NET Framework versions 1.1 and 2.0



Written in C# and designed for Microsoft® Visual Studio® .NET™,
List Controls for .NET WinForms provides the most advanced list box and combo box functionality that you'll find anywhere.

List Controls for .NET WinForms provides tremendous functionality - industry leading data management, presentation and user experience. Both controls are easy to learn, simple to use, highly customizable and super fast. Most importantly, they're reliable too!

itList and itCombo are powerful replacements for these .NET controls:

  • ListBox
  • CheckedListBox
  • ListView (list or details mode)
  • ComboBox

In addition, itList is an extremely suitable grid control replacement (where in-cell user editability is not required).

We invite you to judge List Controls for .NET WinForms for yourself.


 
Links
Product Tour
Release History
Common Features:
  • Data
    • Multiple columns - able to manage more than 2 billion columns x 2 billion rows
    • Intuitive object model - including objects such as ListColumn, ListColumnCollection, ListColumnRange, ListRow and ListRowRange
    • Binding to data sources that implement IList or IListSource interfaces - such as arrays, collections and ADO.NET objects
    • Simple and complex IList binding. When binding to an IList derived interface the SimpleIListBinding property indicates whether the control should bind to objects in the list (simple, like .NET ListBox/ComboBox) or properties of the object type contained in the list (complex, like .NET DataGrid)
    • Binding to our ISimpleTabularDataSource interface. This interface is much easier to implement than IListSource/IList, and provides superior performance
    • Unbound columns - the control maintains column data for you
    • Dynamic columns - the control communicates (on demand) with any object that you provide implementing our ISimpleColumnDataSource interface
    • Bound, unbound and dynamic columns can be used at the same time!
    • Rows property; InsertRowsAt, MoveRow and RemoveRowsAt methods - available when unbound. MoveRowUsingSortIndex can be used when bound. Finally, where rows can be added, moved or removed using the bound datasource the control will update accordingly
    • Numerous methods for accessing and updating data
    • Per row check state (checked/unchecked/indeterminate), with several methods to access and update - CheckState, ClearRowCheckState, CheckedCount, IndeterminateCount, IsChecked, SetCheckState and GetCheckedIndices
    • Filtering, with several methods to access and update - Filter, ClearFilteredRows, FilteredCount, IsFiltered and GetFilteredIndices
    • Per row selected state, with several methods to access and update - SelectedIndex, ClearSelectedRows, SelectedCount, IsSelected, SetSelected and GetSelectedIndices
    • Powerful (yet consistent and easy to use) functionality for updating row check state, row filtered state, and row selected state including comparison and regular expression based matches
    • IndexOf and LastIndexOf methods (like .NET Array). Optional column indexing (enabling binary searching) provides greatly enhanced performance without the need to actually alter the underlying order of your data (which is required prior to using the .NET Array BinarySearch method). This feature is particularly useful when multiple columns are being utilized
    • Find method to locate values using regular expression or comparison based match definitions. Multiple column Find also supported, returning the index of the first row meeting multiple (per column) match definitions
    • FindNext method scans columns and rows for the next regular expression based match
    • Single column sorting, multi-column sorting, and custom (delegate) sorting
    • Per column StringCompareCultureInfo and StringCompareMethod properties for culturally aware comparison of string data
    • CalculateScalar method (ListColumn object) returns the result of single value (scalar) calculations. The ScalarFunction enum is used to indicate which calculation should be performed - values include Count, Min, Max, Mean, Percent, StdDev, StdDevP, Sum, Var and VarP
    • Export method for exporting list text, with flexible options
    • Import method for importing delimited text, with flexible options
    • All functionality that compares data (Find; FindNext; sorting; comparison and regular expression based matching) provides the ability to compare text actually displayed in the UI. This is important where UI text has been formatted or translated
    • Many more useful properties and methods for managing data and row state not listed here!
  • Presentation
    • Column headers
    • Group headers - used to group contiguous columns
    • Standard control BackColor, Font and ForeColor properties
    • GroupHeaderFont and HeaderFont properties
    • 'Display styles' provide a simple means to control item presentation (background and foreground color, font) for varying situations. Control and column properties include AlternateRowStyle, RowHoverStyle, RowNormalStyle, RowPressedStyle and SelectedRowStyle
    • BackgroundImage property
    • All xxxxImage properties are provided with a sibling xxxxImageRenderMethod property. Supported values include TopLeft, TopCenter, TopRight, MiddleLeft, MiddleCenter, MiddleRight, BottomLeft, BottomCenter, BottomRight, Tile, Stretch, StretchIsotropic, and MiddleCenterBestFit
    • ImageTranslationList - provides automatic translation of underlying item values to images
    • StringTranslationList - provides automatic translation of underlying item values to strings
    • Numerous column properties:
      • Header and item 'ContentType' - Text, StringTranslationList, Image, ImageTranslationList and CheckBox
      • Header and item alignment, format flags, line alignment, tab stops and trimming for control over text presentation
      • TextFormat and TextFormatProvider properties provide additional, culturally aware, control over text presentation (items only - it is assumed that header text does not require formatting by the control)
      • ShowHideButton object. The 'show/hide button' concept allows users to interactively show/hide columns. Refer to the user interaction section (below) for further detail
      • Text content from hidden columns can be automatically merged into the columns used to hide those columns. The HeaderMergeFormat and ItemMergeFormat properties indicate the format strings to be used when merging text content from multiple columns. Text merging is a very handy feature. It allows underlying data to remain in it's original state yet be merged for presentation to the user
      • Header custom and filter buttons. Refer to the user interaction section (below) for further detail
      • NullText property indicates the text to be used in place of DBNull values
      • Cell button. Refer to the user interaction section (below) for further detail
      • Line (vertical) color and style
      • CustomLayoutProvider property - by supplying your own custom layout provider you can customize the location and size of visual elements (check boxes, buttons, content etc.) This simple feature allows us to provide great flexibility without cluttering our object model (without it we'd need to provide many properties to handle all the possibilities.) It also allows you to easily re-use your layout provider code across multiple columns (or controls) - so there is no need to clutter your source code either!
      • CustomPaintProvider property - by supplying your own custom paint provider you can easily take control of column rendering. Like CustomLayoutProvider, this feature allows you to easily re-use your paint provider code
      • Analysis painters - an analysis painter is a class that implements ICustomLayoutProvider and ICustomPaintProvider. It is used to display column data graphically (for analysis). Six analysis painters are included - BarPainter, MedianBarPainter, PlusMinusBarPainter, PositionPainter, DateTimePositionPainter and SetPainter. Or you can provide your own painter by inheriting from the base class, AnalysisPainter. To see analysis painters in action, take a look at the Analysis Painters page in our Product Tour
    • ListRows property - indicates the maximum number of rows to be displayed in the list
    • GroupHeaderHeight, HeaderHeight and RowHeight properties
    • Varying row height
    • Automatic calculation of column width and row height (where required)
    • User resizing of columns and rows
    • Column sets - cells from multiple columns may be stacked vertically within row layout. This simple concept can save a lot of wasted space and greatly increase user recognition/understanding of the data provided
    • Horizontal line color and style
    • Complete RTL (right-to-left) support
    • Windows XP+ visual styles support. We utilize two internal theme providers, each capable of rendering all common (themed) visual elements such as control border, headers, check boxes and buttons. The first of these theme providers supplies standard Windows style rendering, the other supplies XP visual style rendering. Simply set the ThemeStyle property and we'll take care of the rest
    • CustomThemeProvider property. Furthering the concept just presented, you can supply your own 'custom' theme provider. It can be used to customize the rendering of any or all common visual elements. For those elements that you choose not to render, the control will use it's own current internal theme provider. Just like the custom layout and paint provider concepts (discussed above), this incredibly flexible feature adds just one property to the control's object model
    • IntegralHeight property - when True, the control's height will be automatically adjusted to 'best fit' current properties (ListRows, GroupHeaderHeight, HeaderHeight and RowHeight properties)
    • Many more useful properties and methods for managing presentation not listed here!
  • User Interaction
    • Full support for standard keyboard and mouse operations - including mouse wheel support
    • MouseWheelScrollLines property
    • Advanced user search feature called AutoFind that provides type-ahead (auto-complete) style interaction. AutoFind can be used inside itCombo with or without an edit text box, and in itList. Please refer to the AutoFind topic in our Product Tour
    • EditCol property in itCombo, AutoFindCol in itList
    • CheckedListBox functionality
    • SelectionMode property just like the .NET ListBox - values include None, One, MultiSimple and MultiExtended
    • ScrollBarVisibility property - values include Auto, BothAlwaysVisible, HorzAlwaysVisible and VertAlwaysVisible
    • ListColumn object CellButton property
    • Text from collapsed (hidden) columns can be merged into remaining columns using a developer specified format string. This feature can be used in conjunction with the ShowHideButton property, or on it's own. The 'show/hide button' concept allows the user to interactively expand (show) and collapse (hide) columns
    • Row filtering in the user interface! The ListColumn object HeaderFilterButton property supports values of MenuCollection, StaticUniqueListMenu and UniqueListMenu. In the case of MenuCollection, the control will use menu items from the HeaderFilters property - a collection which you can fill with your own custom menu items. In the case of UniqueListMenu the control will dynamically generate a menu list of unique column values - making it possible for the user to drill down to any particular subset of data quickly and easy. No matter which option you choose, this concept also allows combination filtering - where filters may be specified by the user across multiple columns, and for any column filter to be enabled/disabled with just a click of the mouse. There is no need for a custom filter row (which may not make sense in some columns) and the user does not need to learn regular expressions based filter patterns
    • Header custom buttons can be used for anything you like. We manage the presentation (though this, of course, is overridable) and notify you when the button has been clicked. As an example, we use this feature ourselves to provide a 'Select all' button in the designer - take a look at the list in the Designer columns page in our Product Tour
    • ListColumn object HeaderBehavior property supports values including None, SortColumn and Simple. In the case of SortColumn the user can sort columns by clicking on the column header
    • Most of the 'display styles' discussed above apply to specific control state. That is, they are used when the mouse is idle, hovering or pressed - providing the user with a more interactive experience
    • Dynamic tooltips - tooltip text can be specified as the mouse passes over various control parts
    • Shortcut and TooltipText properties in UI buttons
    • Numerous events to intercept, respond to, or override user interaction
    • Many more useful properties and methods for managing user interaction not listed here!
Usability:
  • A very useful designer is provided. It is simple to use - just one page for control properties and another for column properties. Utilising our unique 'Tabbed Property Page' interface, it is much easier and faster to use than any other designer we've seen, or the Visual Studio .NET 'Properties Window' (where hundreds of properties can exist together). Perhaps the best feature of all, the columns designer page allows you to modify any single property across multiple columns at the same time. For online screenshots, please refer to the Designer page in our Product Tour
  • The designer is dynamic - it will recognize additional properties provided by any control you derive from our controls
  • Reset method - both controls can be completely restored to their initial (default) state by calling this method. The Reset method is available at design time via the designer or Visual Studio .NET 'Properties Window'
  • ListColumnEnumerator and ListRowEnumerator allow quick and easy For Each style iteration across columns and/or rows
  • ListColumnRange and ListRowRange allow iteration across specific 'ranges' of columns and/or rows
  • ListColumnRange can also be used to modify column properties across multiple columns in just one line of code
  • ListLayoutInfo object provides information about the control's run time state. Features include LeftCol, RightCol, TopRow, BottomRow, IsColInView and IsRowInView
  • Both controls expose a tremendous amount of functionality. But, much of this is provided via method overloads, and elsewhere many common patterns exists. For example, once you know how to 'Find' data using regular expressions, you should have no problem filtering, or updating row checked or selected state either
itCombo Additional Features:
  • CueText and CueTextColor properties
  • DropDownStyle property just like the .NET ComboBox - values include DropDown, DropDownList and Simple
  • DropDownWidth property
  • DropDownPosition property - values include AlignLeft, AlignRight, Auto, CenterControl and CenterScreen
  • DropDownAutoResizeMethod property - values include None, BestFit, Columns and Control
  • EditImage, EditHighlightColor, EditContextMenu and Text properties
  • EditFormat property makes multi-column edit possible
  • UpDown property - when DropDownStyle = DropDown or DropDownList, an up/down button is displayed instead. The user can scroll through the underlying list using these buttons (the list itself is not shown)
Quality:
  • Both controls have been purpose built from scratch. They do not inherit from their .NET counterparts, nor do they wrap their Windows counterparts (like the .NET controls)
  • Full support for Visual Studio 2003 and 2005 design-time data binding
  • A thorough Help manual is provided, and a handy demo with lots of great examples and sample code. The demo is provided with full C# and VB.NET source
  • We closely followed Microsoft's Design Guidelines for Class Library Developers to ensure a quality product and consistent, intuitive object model
  • The assembly has been written in 100% managed code, and we only use external Win32 functions where absolutely necessary
  • Both controls are extremely efficient - we only utilize memory as required and we release it immediately. We do everything short of calling GC.Collect (which could of course interrupt your application and interfere with the user's experience)
  • Much internal code is re-used over and over again, making the controls as lightweight as possible
  • The assembly is CLSCompliant - both controls can be used with any .NET language
  • This product has been carefully tested using tools like FxCop to ensure both controls are inherently stable
  • This product has been designed for and tested on Windows 98, ME, 2000 and XP
If you haven't done so already, please take a look at our Product Tour.

Thanks

List Controls for .NET WinForms is developed by it-partners.com Pty Ltd. We thank you for considering it.

If you have any comments, questions or suggestions please E-mail us at support@it-partners.com .

^ top