Now Available!

Native .Net

TList WinForms
.Net Framework


MetaDraw WinForms
.Net Framework

Make you
look sharp!




Order Forms

How To








Site Map


History File (WinForms version)

File Name Current Version Date Created
BTIS.TList.dll 7 Feb 2005

TList WinForms - v., 7 Feb 2005
Change Subject Description


Resizing Row by Mouse

NOTE! This Enhancement is supported only for users 
with  ** Subscription License Option **

I. Support of Grid.AllowResizing property has been extended.
If customer has ** Subscription License Option ** then setting BTIS.TList.GridAllowResizing.Rows flag in the Grid.AllowResizing property will enable users to resize rows of a TList grid using the mouse.

By default BTIS.TList.GridAllowResizing.Rows flag is OFF.

If customer does not have Subscription License Option then behaviour of the property is not changed and only the the ColumnTitles row of a TreeGrid may be made resizable.

II. The following flag is added to Grid.AutoSizeOptions property: BTIS.TList.GridAutoSizeOptions.SeparatorRowDoubleClick

When the flag is set on and flag BTIS.TList.GridAllowResizing.Rows of Grid.AllowResizing property is set on ( requires ** Subscription license **) then TList will automatically resize grid rows to fit the contained data in response to a double click on the separator between rows in the Row Titles column.

The flag is NOT set by default. The new flag has effect only if customer has ** Subscription License Option **.  



Height of Empty Row

Height of Empty Row was too short. The height of empty item is now correctly based on current font settings as if there were a character there.
The change is implemented when Modifications flag bit is set: TL_MOD_EXTEND_EMPTY_ITEMS (&H20000).
The flag is set on by default. The flag can be turned off for backward compatibility.



Error "Can not find Font" when debugging

The System::Drawing::Font could not be created correctly with "MS Sans Serif" font

This could cause a problem when debuging in some situations such as when Break on all Exceptions is enabled. The error message was generated: "Additional information: Cannot find font 'MS Sans Serif'."



FullItemString method

Reading TList1.FullItemString( index ) should return value of TList item if there is no grid.
In earlier builds an empty string was returned if there was no grid.



MultiSelect property

There was a bug in Multi-Select support

TList.Multiselect =2
TList has multiple column Grid
First - User selects multiple items
Then - User clicks on one of the selected items => TList did not clear the other item's selection

TList now correctly clears selection of all items except clicked item.


Activatable property

Setting .Activatable = TL_ACTIV_DISABLED did not work properly for either RowCellDef or Gridcell.CellDef , or for ItemCell if applied to item in Grid
mouse clicks still activated the grid row.



Scrollbars with Virtual Items

TList did not correctly show vertical scrollbar when virtual items are used.
In some specific situations when TList was set up with Virtual items and when TList did not have the focus it did not correctly show scrollbars.


TList WinForms - v., 8 Sept 2004
Change Subject Description


PrintOneStep method

TList for NET now supports new formatting codes for customizing headers and footers while using PrintOneStep method.

Here is a list of all formatting codes:
\<p>\ - placeholder for displaying current page number
\<tp>\ - placeholder for displaying total page number 
(Example: to print "Page 1 of 10" use the following format: 
              "Page \<p>\  of  \<tp>\")

\<align=center>\ - alignment of the header\footer
\<align=right>\       text across the page 

\<font=name, size, bold, italic, underline>\
- font description for the header\footer, where:
name - string representing name of the font
size - string represnting size of the font, in points
bold, italic and underline - "true"\"false" string

I. All entries of "\<p>\" and "\<tp>\" within header/footer get replaced by corresponding values
Format example :
"\<p>\/\<tp>\, page \<p>\ of \<tp>\"
converted and will look like :
"2/18, page 2 of 18"

II. Inside formatting codes "\<p>\" and "\<tp>\" spaces are NOT allowed.
Invalid format example:
"\<p  >\"  and "\<  tp>\"
Such header/footer strings will be printed as it is, none of the formatting codes will be interpreted.

III. You can include "\<align=...>\" and "\<font=...>\" formatting codes only ONCE per header/footer.
All subsequent codes will be printed as it is.
Format example:
"\<align=left>\ some text \<align=left>\" will be left aligned and look like: " some text \<align=left>\"

IV. Inside formatting codes "\<align" and "\<font" spaces are allowed. Format example:
"Page \<align = left>\ \<font = , 16, true, false, false>\ footer"
will be left aligned and printed with currently selected printer font, size 16, bold:
"Page footer"

But user CAN NOT include space between "\<" and formatting code name like "align".

Invalid format example:
"Page \<  align = left>\footer"
Such header/footer string will be printed as it is, none of the formatting codes will be interpreted.
"Page \<  align = left>\footer"

V. Parameters of "\<font" formatting code can be omitted.
Format example:
"Page \<font = ,,true>\ footer"
will be printed with currently selected printer font, size, and bold:
"Page footer"

VI. All formatting code names are case sensitive.



Navigation past Hidden Items

If all children of an item are marked as AlwaysHidden and hidden items are not shown ( ShowHiddenItems = False ) then there was a problem navigating up and down with arrow keys.
The UpArrow skiped ( jumped over ) the parent of the hidden items.


Click on Partially Shown Item

When a partially shown item on the edge of the control is clicked it will ( and should ) scroll the tree to show the entire item. The problem was that if the item is the last item in the tree, the ItemClick and Click events were not generated.

The events are now properly generated if the Modification flag TL_MOD_CLICK_BEHAVIOR is set on.
The flag is set on by default.
The events will not be triggered if this flag bit is not set.


Editing Double Precision Values

Starting in-place text editing of a double-precision number caused a change in the formatting of the number and in some cases a loss of precision.
The result was that just startting and ending editing could change the number.

TList WinForms - v., 24 June 2004
Change Subject Description


ShowCaption,  Caption properties.

ShowCaption and Caption did not work properly.
The caption was not displayed.

TList WinForms - v., 16 June 2004
Change Subject Description


Non-Scrollable Columns

TList now supports freezing a defined number of left hand columns so that they are not scrolled horizontally This is implemented with the new property - NonScrollableColumns.

NonScrollableColumns property
Applies to
TListGrid object (TreeGrid only, not supported for ItemGrids)
Specifies the number of columns on the left that are frozen ( can not be scrolled ) in TList.
These columns will remain on left side regardless of user Scroll bar or keyboard action.
When set to 0, all columns are scrollable (even column 0 - the Row Titles column )
Default Value = 1 ( RowTitles column is non-scrolling )
TList1.Grid.NonScrollableColumns = 4
NOTE - The value of the Non-ScrollableColumns property is based on enumeration of all columns - even hidden columns.
Thus in the case where there is no RowTitles Column, and Coldefs(2).Visible = False
Then setting NonScrollableColumns = 4 would mean that the 4 frozen columns are Column 0 (the hidden Row Titles Column ) Column 1 , Column 2 ( not seen ) and Column 3
So user would see columns 1 and 3 frozen (not scrollable ) and all other columns ( columns 4, 5, 6, 7 ... ) would be scrollable

This feature is enabled only for users with Subscription License option.
Users attempting to use this feature without Subscription License will see message "You do not have an appropriate license to use an extended functionality of the control - NonScrollableColumns "
Users with Subscription License have a 1 in low bit of fifth (hexadecimal) symbol in serial Number
For example: TN101.... or TN103....


VScroll / HScroll Events

The POS parameter was set to an incorrect value inside VScroll event and HScroll event parameter


TListNode.Prev property - after DragDrop

Reading the .Prev of a TList node object after moving the node using drag Drop caused error in some situations (if node was moved by DragDrop operation).



Scrollbars were not correctly updated after adding new items outside the visible items range.


ItemGrid Cell Editing

It was not possible to edit the last cell in a root ItemGrid if some root ItemGrid ( ItemGrid(-1) was implemented with visible columns.


Error on Application Exit

In the following rare situation TList caused an error on application exit
1) TList has TreeGrid
2) LoadData method was called and it loaded new TreeGrid
3) After the load TList was not redrawn ( ReDraw = False )
4) Exit from the program (destroying TList).


Mixed Selection Mode

TList did not properly handle Mixture of Selection modes where the data is presented with both a tree grid and a few item grids.

When TList1.Multiselect = ExplorerLike and all grid object have SelectionMode = TL_SELMODE_INHERITED the selection did not work correctly.
In this scenario end-user should not be able to select multiple rows in item grid with single click, item-grid must still be considered as part of the tree.



The sorting was not working properly, items were added in random order even if ItemSorted(iParent) = TLSORTSTATE_ON.


Counting Selected Items

TList did not return the correct number of selected items/rows if virtual mode was turned ON and TList is presented with TreeGrid structure.


PrintOneStep method

PrintOneStep method did not print column's headers for grid object created via TList1.ItemGrid(-1) statement.


Virtual Items - Scrolling

Postponed / Cancelled scrolling causes drawing problem for virtual items.
Cancelling / Postponing scrolling within VScroll event while using Virtual Item Support caused the scrollbar to jump to the previous position or to the positions of the active item before moving to the proper scrolled position.



Dragging the mouse with button depressed over grid captions while in Extended MultiSelect mode ( with MultiSelect = TLMULSEL_EXT ) caused an error.



In Extended MultiSelect Mode (TLMULSEL_EXT ) TList incorrectly selected items on MouseMove from the just unselected item to the current item. TList now correctly selects only the current item in this situation.


ComboBox editing

Modifications flags were ignored when combobox items were drawn using dropdown list style.

TList WinForms - v., 24 December 2003
Change Subject Description


Modifications property flag

Grid captions became selectable if Modifications.IgnoreSelectableProp flag was set for Modifications property.


ActivationMode property

ActivationMode could not be set to default value (GridActivationMode.Item)


TListSelectedRows object - Count property

TList.Grid.SelectedRows.Count did not work properly in build
The problem happend only for so-called tree-grid object, there was no problem for item-grid objects.

TList WinForms - v., 17 December 2003

Change Subject Description


New ToolTipsMode Setting

A new mode for ToolTipsMode property was added: ToolTipsMode.Standard
In this mode tooltip window is visible only when the mouse pointer is over the grid cell and does not cross that cell boundaries. As soon as mouse moves out of the cell - tooltip window dissapears. This behavior is similar to a standard behavior of Windows Explorer.


Drag/drop behavior adjustments

A number of changes were implemented in order to improve compatibility of selection / drag-drop behavior with Windows Explorer Behavior.

Now when the MultiSelect property is set to MultiSelect.ExplorerLike, TList responds as noted below:

User Action  TList Response

click (no key pressed)

select item on MouseDown

click (CTRL key is pressed)

select nonselected item on MouseDown, deselect previously selected item on MouseUp

click (SHIFT key is pressed)

select a range of items on MouseDown

click (CTRL key is pressed) over non selected item +
starting drag/drop

select the item that was clicked in order to include that item into a range of drag/drop items

Note: The SmartDragDrop property will not be set internally to True (as it was before) when drag/drop starts Previous to this change an item was always selected or deslected on Mouse Down regardless of the what keyboard keys were depressed.


Performance / Selectable property

In order to improve TList performance, a new flag bit may now be set in the Modifications property.

TList.Modifications = TList.Modifications Or Modifications.IgnoreSelectableProp

With this flag bit set within the Modifications property, any settings for Selectable property (TListCellDef object) will be ignored. TList will in this case not restrict the ability to perform any selections.
Specifing this flag will significantly speed up selection related operations ( for example: reading SelItemCount to retrieve the number of selected objects ).

Note: the value of the Selectable property may still be set and read but it will have no effect on the behavior of TList.
This new setting of Modifications property is most valuable for when using TList Virtual Load mechanisms.


Handling unsupported operating systems

A new property WarningForUnsupportedOperatingSystem was added.

Earlier editions of TList for .NET have been designed to always warned end-users when a TList based application is run in an operating system for which TList is not formally supported ( for which it was not designed or tested ).

The programmer can now control this behavior.
Now when TList is loaded in Run-Time mode ( when user runs a compiled .EXE TList based application ) on an operating system which has not been formally tested for, TList will first check the value of the WarningForUnsupportedOperatingSystem property.

If this property is set to True ( Default setting ) TList will display the following message ( only the first time the application is run on this operating system ):
" The component, TList for .NET, being loaded by this application was not designed for the current operating system and is not formally supported. The application may still run but support of the functioning of the component is not guarenteed. Please check with your the application publisher for a more recent edition of the application "

If this property has been set to False, the programmer is taking responsibility for the compatibility of the application with the unsupported ( by TList ) operating system and now warning message will be shown by TList to end-users.

Regardless of the setting of this property a warning will be shown at to developers loading TList based project in design time environment on an operating system not formally supported by Bennet-Tec:
" The component, TList for .NET , being loaded was not designed for the current operating system and is not formally supported. Please check for a more recent edition of this product "

Currently TList for .NET has been designed and tested and is formally supported for use under Windows 95, 98, NT, ME, 2000, XP, 2003.


Huge TLT data sets

TList can now support really huge TLT data files ( saved and Read with with SaveData and LoadData methods ) holding up to 2,147,483,647 stored objects (rows, cells, hidden values, images,  . . .)
Previously a TList TLT Data file could only support data sets containing a maximum of 2,000,000 objects .


CurrentParent property

The CurrentParent property now supports the embedded string "\.." as in DOS, as pointing to a higher level node.

Example: for following tree
 |   |--item4

TList1.CurrentParent = "\item2\item3\item4\.."
In this case TList sets 'item3' as the current parent.


Automatic drag/drop and ItemDeactivate event

In some situations a call to the MsgBox function within the ItemDeactivate event handler caused TList to incorrectly start automatic drag/drop operation.


TList WinForms - v., 31 October 2003
Change Subject Description



The following properties previously interpretted data using the wrong units.

STARTING with version all of these properties are measured in pixels
as is specified in the documentation and as is standard in .NET applications
( previously measured in twips:)

( previously measured in twips:)

You should make appropriate changes in your code
( adjusting values as appropriate for measurement in pixels)
if you have explicitly set any of these properties in your code or with design time property settings ,

This syntax change in TList requires recompiling any existing applications in which these properties have been explicitely set by code or by setting property values within the design time property window 

Make sure you recompile your application against version before re-distribution. 
Do not use version mapping ( via the application's configuration file ) to force existing ( previously compiled ) applications  which were built using older TList for .NET versions ( to work with this new build ( ) of TList for .NET 


C# samples were added to the installation kit.

Use Start/Programs/TLIst for .NET/Samples/C# Samples/*.* links to open C# samples.


Multiple selection

When responding to user key combinations for multiple selections, TList did not recognize a programmatically selected initial selection as the starting point for selected range.
As a result, the first key selection by user selected only an individual item in this case.


Row and Item Height settings in TLT file

TList loaded incorrect values for TListGrid.ItemHeight and TListGrid.RowHeight properties from tlt-file when the TLT file was created by previous versions of the control.
The problem happened when you tried to load tlt-file created using version into the component version or
In that case the height of the loaded items became 15 times bigger than it should be.


Click event

The Click Event was not generated correctly.


Exiting an Application While Editing

A error occurred when end-user exited an application while the combobox editing was still active.


Column resizing

When the height of TList control was bigger then the width, the end-user could not resize any column of the LAST grid object within the tree structure (so called "item grid" objects).


PrintOneStep method

The PrintOneStep method printed page numbers starting with page number 0 instead of 1. Now the page numbering correctly starts from 1.



During automatic drag/drop operation TList dropped a dragged item(s) to the wrong position if there were any collapsed items with children above it in the tree.

In the case of error e.TargetInfo.TargetIndex parameter's property returned a wrong value within AutoDropRequest event.


RefreshItems, ItemVirtualCount, ItemQueryData

Calling the RefreshItems method "TList1.RefreshItems(0, TList1.ListCount - 1)" could cause a GPF if the TList1.ItemVirtualCount property value was decreased within the ItemQueryData event handler.

NOTE: Although that particular problem was fixed, ItemVirtualCount property SHOULD NOT be changed inside the ItemQueryData event, otherwise the results can be inpredictable.

TList WinForms - v., 10 September 2003
Change Subject Description


Checkbox editing problem

Checkbox editing did not work when applied for the grid cells.

TList WinForms - v., 1 September 2003
Change Subject Description


GPF in Virtual TreeGrid

Adding Virtual children to a Virtual Item within a TreeGrid structure had caused a GPF



TList behaved improperly when editing was recursively started by initiating editing within the GridCellRequestEditing event


Decimal and 64 bit long values

TList had a problem adding, displaying and serializing decimal and 64 bit long values.


Counting selected items

TList had incorrectly included non-selectable items ( where .Selectable = Disabled ) when calculating the return value for the .SelItemCount property.


GridCellEditingChange and ItemEditingChange events

There was a problem when GridCellEditingChange and ItemEditingChange events were not generated. It happend when all previous data in the cell/item are selected and a new character when typed replaces the whole selection. Note: the problem took a place only if the cell/item has single-line text style (i.e. edit box is single-line edit box).


Problems with conversion data to string

Some operation could potentially cause GPF if tree or first column of grid contains data which type is different from the string one. Following operations/properties could cause the problem:

1) DragDrop.........operation

and maybe some others that perform transformation item contents to string.


In-place editing problem

There was a problem with in-place editing for "tree" column of tree grid (grid object accessed via TList1.Grid.XXX ). During editing of the "tree" column TList generated "ItemXXX" editing events instead "GridCellXXX" editing events

(for example: RequestEditing event was generated instead of GridCellRequestEditing one).

If TList.Modifications.GridEditingAdjust flag set TList generates Grid Cell editing events while "tree" column editing.


Border style problem

BorderStyle design-time setings were ignored when component run in run-time mode (the application's BorderStyle was always - 3D border).


Format property problem

There was a problem with Format property while working with date/time formats.
"AM/PM" format did not work properly:
TListCellDef.Format = "*hh:nn AM/PM;;;*"
shown "19:32 PM" instead of "07:32 PM".


[Tab] key problem.

When TListGrid object was set to multi-selection mode [Tab] key moved the focus and selected cells/rows. That was fixed. Now [Tab] key ONLY moves the focus (activates) cells/rows.

Note: [Shift]+[Tab] selects group of cells/rows as it suposed to. There was no problem with this part of functionality.


In-place editing problem

If there was no initial data in the cell/item and in-place editing started, the very harrow textbox edit control gets displayed that prevented end-user from seeing anything while typing into the textbox.


GCEditingRequest/ItemEditingRequest events problem

1) Changing 'e.Options' inside GCEditingRequest and ItemEditingRequest events did not have any effect.

2) Flag BTIS.TList.RequestEditingOptions.FullRect was absent within BTIS.TList.RequestEditingOptions enumeration.


In-place editing problem

End-user could not finish in-place editing using and keys if he/she was editing a simple tree items.


SmartDragDrop property problem

There was a problem with SmartDragDrop property. When selection mode was set to single and SmartDragDrop property was set to True, the selection gets separated from the focus rectangle from time to time.


In-place editing problem

TList did not automatically scroll the grid to display a cell before starting the in-place editing in case if the focus was out of component at that time.


TListGrid.Visible property problem

TListGrid.Visible property did not work.


TListGrid.RowHeight property problem

TListGrid.RowHeight property accepted height's settings in twips although the pixels should be used.


tooltips relative problem

Some events were not fired when the mouse was over a tooltip.

Copyrightę 2003 Bennet-Tec Information Systems, Inc. All rights reserved.