Note: A parameterless constructor is required for all derived classes.
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The AllowEdit property does not, by itself, determine the behavior exhibited when a cell is clicked with the mouse; the
Appearance of the
The Editor and
The
The Key property is always the same as that of the associated
The
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The
Note that not all styles are available on all operating systems. If the version of the OS that your program is running on does not support a particular border style, borders formatted with that style will be drawn using solid lines.
The parameterless overload of the PerformAutoResize method uses an effective
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The ActiveCellAppearance property is also exposed by the
The AllowCellEdit property is exposed by each of the column-related objects (
Cells can be disabled by setting the AllowCellEdit property to 'Disabled'.
The end user can be prevented from changing a cell's contents, while still being allowed to copy the cell's contents, by setting the AllowCellEdit property to 'ReadOnly'.
The AllowCellEdit property does not, by itself, determine the behavior exhibited when a cell is clicked with the mouse; the
CellAppearance of the
The DataType property is settable only for unbound columns; the data type of a bound column is determined by the underlying data column, and cannot be changed.
The Editor and
The
Note: The default value, 0, indicates that no limit is imposed.
In the case where the
When relying on the MaxLength property of a DataColumn, be sure to set the MissingSchemaAction property of the associated DataAdapter to MissingSchemaAction.AddWithKey; neglecting to do this will result in unexpected behavior.
The Nullable property can be used to cause the
When the Text property is left at its default value (string.Empty), the value of this
The TipStyleCell property can also be set at the
A column will resolve to invisible when it is a Chaptered column.
The
Note that not all styles are available on all operating systems. If the version of the OS that your program is running on does not support a particular border style, borders formatted with that style will be drawn using solid lines.
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The
The
The UltraTreeColumnSet class is analagous to the UltraGrid's UltraGridBand object in that it defines a set of columns.
The properties of the UltraTreeColumnSet class are applicable only when the control's
The UltraTreeColumnSettings class exposes a collection of
An
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The ActiveCellAppearance property is also exposed by the
The AllowCellEdit property is exposed by each of the column-related objects (
Cells can be disabled by setting the AllowCellEdit property to 'Disabled'.
The end user can be prevented from changing a cell's contents, while still being allowed to copy the cell's contents, by setting the AllowCellEdit property to 'ReadOnly'.
The AllowCellEdit property does not, by itself, determine the behavior exhibited when a cell is clicked with the mouse; the
Note: Depending on the value of the
CellAppearance of the
ColumnHeaderAppearance of the
The
Note: The
Also note that the ExpansionIndicatorColumn property can return a null value (Nothing in VB); for example,
if this
Also note that if the
The TipStyleCell property can also be set at the
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
Note: This property is only used when
The
The UltraTreeColumnSettings class exists mainly to organize the properties which apply to the
The properties of the UltraTreeColumnSettings class are applicable only when the control's
The UltraTreeColumnSettings class exposes a collection of
The
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The ActiveCellAppearance property is also exposed at more specific levels (see
The AllowCellEdit property is exposed by each of the column-related objects (
Cells can be disabled by setting the AllowCellEdit property to 'Disabled'.
The end user can be prevented from changing a cell's contents, while still being allowed to copy the cell's contents, by setting the AllowCellEdit property to 'ReadOnly'.
The AllowCellEdit property does not, by itself, determine the behavior exhibited when a cell is clicked with the mouse; the
Note: The AutoFitColumns property is only applicable when the
Note: Depending on the value of the
CellAppearance of the
ColumnHeaderAppearance of the
To maintain compatibility with the Infragistics UltraGrid control, pressing the Shift key while clicking a sortable column header will prevent the
Since there is no standard Windows keystroke for extending column sorting, the MultiSortModifierKey enables the end developer to specify any modifier key to be designated as the key which extends a column sorting operation.
The standard modifier keys (Alt, Control, and Shift) can be assigned to the MultiSortModifierKey property, but any other value will cause an exception to be thrown.
ShowBandNodes determines when to insert a node into a DataBound hierarchy of nodes to represent the band. Regardless of the setting of ShowBandNode, band nodes will always be created to separate siblling bands. In a case where a child band has no siblings, a band node will be created for it if ShowBandNodes is set to ShowBandNodes.Always.
Note: ShowBandNodes will not ariticially create nodes at the root level of the binding (i.e. the control-level or on the nodes collection whose SetDataBinding method was called).
The TabNavigation property enables the end developer to specify whether pressing the tab key should cause the next control in the tab order to be activated ('NextControl'), or navigate to the next cell ('NextCell'). When set to 'NextControlOnLastCell', pressing the tab key will result in the same behavior as the 'NextCell' setting, except when the last cell displayed by the control is active, or the first cell displayed by the control is active and the Shift key is depressed, in which case the next control in the tab order is activated.
The TipStyleCell property can also be set at the
The 'UseOverride' setting preserves legacy selection behavior, whereby no two nodes which belong to different Nodes collections can be selected concurrently.
Note: The 'None' setting of the
Note: An
Note: The 'None' setting of the
Note: An
Disabling an event will not affect the internal operation of the control. Disabling simply instructs the control not to call the event handler so that code the programmer entered is not fired.
For example, disabling the Click will not stop the control from changing the Active Node when it is clicked. It will only cause the Click Event not to fire when the control is clicked.
Disabling an event will not affect the internal operation of the control. Disabling simply instructs the control not to call the event handler so that code the programmer entered is not fired.
For example, disabling the CLick will not stop the control from changing the Active Node when it is clicked. It will only cause the Click Event not to fire when the control is clicked.
In the case where a range selection is performed and the control's
The IncludeCollapsedDescendantsOnRangeSelection property is applicable only in the case where a range selection is being performed; extending a selection by clicking a node while pressing the Control key does not consitute a range selection.
The
Descendants of the last node in the range selection are not selected, i.e., the last node clicked or dragged to represents the last member of the selection.
Note: In the case where a column's header (otherwise referred to as label) has been resized, the Cell property will return null (Nothing in VB).
Note: In the case where a column's header (otherwise referred to as label) has been resized, the Node property will return null (Nothing in VB). Be sure to perform a null reference check before accessing the property.
Note: In the case where a column's header (otherwise referred to as label) has been resized, the Cell property will return null (Nothing in VB). Be sure to perform a null reference check before accessing the property.
Note: The
Note: The value of the NewSize property can be changed by the end developer to override the size which resulted from the user's action. The value of the
Note: In the case where a column's header (otherwise referred to as label) has been span resized, the Node property will return null (Nothing in VB). Be sure to perform a null reference check before accessing the property.
Note: In the case where a column's header (otherwise referred to as label) has been span resized, the Cell property will return null (Nothing in VB). Be sure to perform a null reference check before accessing the property.
Note: In the case where a column's header (otherwise referred to as label) has been span resized, the Cell property will return null (Nothing in VB).
Note: Accessing the Cell property will cause an
Note: Accessing the Cell property will cause an
Note: The IsValid property delegates to the editor's
Note: Accessing the CurrentValue property (which delegates to the editor's
This property does not automatically cause the items to be adjusted. Instead it will adjust items when a notification that a single column's visible or span property is changed.
This method is provided as a convenience, to simplify the serialization implementation for derived classes. The default implementation does nothing.
The LabelSpan property affects label spanning differently depending on the value of the
This collection supports lazy creates. This means that items in the collection can be referenced without explicitly calling the Add Method and no error will be generated. The items will automatically be created as needed.
Each
This collection is not limited by the actual nodes in the UltraTree. It is possible to create a NodeLevelOverride with an index higher than the number of levels in the UltraTree.
Adds an
This collection supports lazy creates. This means that items in the collection can be referenced without explicitly calling the Add Method and no error will be generated. The items will automatically be created as needed.
This collection supports lazy creates. This means that items in the collection can be referenced without explicitly calling the Add Method and no error will be generated. The items will automatically be created as needed.
Each
This collection is not limited by the actual nodes in the UltraTree. It is possible to create a NodeLevelOverride with an index higher than the number of levels in the UltraTree.
An Override object has properties which affect a node and it's behavior.
Each node determines it's Override properties by resolving all the Overrides which affect it. The Overrides that effect a node are (in order of precedence - highest to lowest):
1) The Override property of the node itself.
2) The Override property of the Nodes Collection of the node's parent.
3) The NodeLevelOverride whose Index is the same as the Level of the node.
4) The UltraTree control Override.
These are in order of precendence from highest to lowest.
Properties of the Override are resolved independently of each other. So a node may use one property from it's own Override and another from an Override on a parent object.
Note: Not all properties are supported on every Override. See the individual property topic for details.
When the ItemHeight is reset, the height of the node will automatically adjust based on the height of the text and the image or images on the node. It takes into account the font, LeftImages, RightImages, and any image currently applied to the node as part of an Appearance.
To reset the ItemHeight to the default value, call the ResetItemHeight method.
To ensure a clean display, the actual height of the node may vary from the specified value by up to one pixel.
ActiveNodeAppearance determines how the node appears when it is the
ExpandedNodeAppearance determines how the node appears when it is
HotTrackingNodeAppearance determines how the node appears when it is the
SelectedNodeAppearance determines how the node appears when it is
NodeAppearance determines how the node normally appears. This appearance will be overriden by any other appearance that applies, such as
LabelEditAppearance determines how the node label appears while being edited.
SelectionType determines how selection is handled and what kind of selection is allowed for a group of nodes.
Regardless of SelectionType, no two nodes under different parents may ever be selected simultaneously.
The SelectionType proeprty of the
NodeStyle determines how the node displays and functions within the UltraTree.
Clicking a CheckBox on a node will toggle the value between Checked and Unchecked.
Clicking a TriStateCheckBox will cycle the node's CheckState from Checked to Indeterminate to Unchecked and then back to Checked.
The OptionButton style allows the creation of a series of options which are mutually exclusive under the same parent. The CheckState of the currently selected option will be Checked. The other nodes CheckState will return Unchecked.
When the associated
If the image of the node is from an ImageList control, the ImageSize of the ImageList will be used and this property is ignored.
If the image is added directly to the Appearance of the node, then ImageSize will resize the image to the specified size. The Image will be stretched or shrunk to fit the ImageSize.
When LabelEdit resolves to true, clicking (or pressing F2) on the
When LabelEdit resolves to false, LabelEdit mode cannot be entered by user interaction.
To validate data entered into a node, use the
Note: The
Note: If the
When true, nodes will reserve a space for a CheckBox.
When false, nodes without a checkbox will not leave a space.
When True, nodes that have an ImageBackground set will display them.
Note: By default, the ImageBackground is not displayed for nodes.
Note: The DrawImageBackground property applies only to node objects; If the ImageBackground property of the control's
When true, nodes will reserve a space for an image.
When false, nodes without an image will not leave a space.
Note: This applies only to the image of a node as part of an Appearance. It does not apply to LeftImages or RightImages.
By default, nodes are sorted alphabetically by
This behavior can be overriden by setting the
The Sort property of the
The SortComparer determines how nodes are sorted.
The default SortComparer will sort nodes alphabetically based on the
The SortComparer property can be set to any object which implements the System.Collections.IComparer interface. The x and y objects of the Compare method will be the two UltraTreeNodes being compared.
When creating a custom SortComparer, nodes should always be sorted Ascendingly. The UltraTree will reverse the order when
The SortComparer property of the
This property determines when a node will display an expansion indicator.
When set to the Default or CheckOnLoad, nodes will automatically determine whether an expansion indicator is necessary based on whether or not there are child nodes.
To load nodes "on demand", use the CheckOnExpand setting. With this setting, the node will show an expansion indicator until the first time it is expanded. At that time, the
To restore the expansion indicator of a node once it has disappeared, use the
When loading nodes on demand, it is generally recommended to also set
This property determins whether a node will expand or collapse automatically when double-clicked.
Regardless of the NodeDoubleClickAction, the DoubleClick event of the control will fire whenerv it is double-clicked.
For nodes whose children are being loaded on demand, it is generall recommended to use a NodeDoubleClickAction setting of ToggleExpansionWhenExpansionIndicatorVisible. This prevents the user from expanded a node whose expansion indicator has disappeared because it has no children.
When true, if the user pressed the "Delete" key while the UltraTree has focus, the tree will automatically respond. By default, the tree will automatically display a confirmation dialog. If it is accepted, all selected nodes will be deleted. To change or remove this dialog, see the
When false, pressing 'Delete' will have no effect on the node.
This property determines whether a node will expand automatically when the mouse pointer hovers over it during a Drag operation.
The delay before the node is
The default text editor doesn't have any buttons except if there is an UltraInkProvider component on the form whose Visible property is true. This is used on TabletPCs to capture ink when editing the text. Other editors may or may not have button elements.
If
When true, if the user pressed the "Ctrl+C" or "Shift+Insert" key combinations while the UltraTree has focus, the tree will automatically copy the selected nodes to the clipboard.
When true, if the user pressed the "Ctrl+X" or "Shift+Delete" key combinations while the UltraTree has focus, the tree will automatically cut the selected nodes to the clipboard.
When true, if the user pressed the "Ctrl+V" or "Shift+Insert" key combinations while the UltraTree has focus, the tree will automatically append nodes from the clipboard into the
Unlike some of the other object properties of the
The columns that are displayed for an
The ShowColumns property is not applicable when the owning
The ShowColumns property is also not applicable when the owning
When CellClickAction is set to 'EditCell', clicking onto a cell activates the cell and immediately enters edit mode on the cell. Setting the property to 'EditCellSelectText' results in the same behavior as 'EditCell' except that the contents of the cell are selected after edit mode is entered.
When set to 'ActivateCell', the cell is activated but not automatically placed into edit mode. When set to 'SelectNodeOnly', no cell is activated or placed into edit mode, but rather the node is activated and optionally selected (depending on the value of the
Note: The CellClickAction property is only applicable to nodes which display columns; nodes that do not display cells behave as if the property were set to 'SelectNode'
Also note that the CellClickAction property applies exclusively to mouse activity, and does not prevent the end user from accomplishing the same result by using the keyboard. For example, when CellClickAction is set to 'ActivateOnly', entering edit mode via the keyboard is not disallowed; edit mode can still be entered by pressing F2.
Calling this method will remove all nodes from the collection. This has the effect of deselecting all
By default, the nodes in the
Calling the SortByPosition method will sort the TreeNodes so that they are in the same order as they appear in the UltraTree.
The
A
The AddRange method is bound by the same selection rules as those enforced through the user interface.
If, for example, selection across different
If selection across different Nodes collections is disallowed, and the specified array contains nodes from different Nodes collections, only the nodes that belong to the same collection as the first node in the array will be added to the selection.
The AddRange method causes the
The
A
The AddRange method is bound by the same selection rules as those enforced through the user interface.
If, for example, selection across different
If selection across different Nodes collections is disallowed, and the specified array contains nodes from different Nodes collections, only the nodes that belong to the same collection as the first node in the array will be added to the selection.
The AddRange method causes the
The
ActionCode determines what the UltraTree does when the KeyActionMapping is triggered.
This collection is automatically populated with a set of default TreeKeyActionMapping objects which describe standard keyboard behavior for the UltraTree.
TreeKeyActionMapping objects may be added, edited, or removed to change the keyboard behavior of the UltraTree.
The UltraTree may trigger more than one action for the same keyboard event. The TreeActionMappins are triggered in the order they exist in the collection.
This method will destroy and re-create the TreeKeyActionMapping collection to reset it back to the defaults.
The UltraTreeNode object can display text, images, and have several styles including CheckBox or Option Buttons.
Using Appearances, the UltraTreenode can display differently depending on it's state. See
In the case where no value is specified for the node's
To determine if an
This overload of the method will expand only nodes that have children. To Expand all nodes with or without children, use
When called with Always, this method expands each node by setting the
If the node's
A node can be positioned relative to any other node in the same tree or even a different
To reposition a node into an empty UltraTree, use
Note: All of the descendants of the node will move along with it.
Note: A node cannot be repositioned to one of it's own Descendants.
A node can be positioned to any other TreeNodesCollection in the same tree or even a different
Note: All of the descendants of the node will move along with it.
Note: A node cannot be repositioned to one of it's own Descendants.
Repositioning a node by
Note: A node cannot be repositioned to one of it's own Descendants.
Note: All of the descendants of the node will move along with it.
This method is useful for ensuring that a node is not repositioned onto one of it's own descendants (in a drag and drop operation, for example.)
Calling this method will ignore the
This method will ensure that the node is somewhere within the viewable area of the control, but the exact position of the node is unknown.
To position the node more precisely, use the
This method will ensure that the node, and optionally its child nodes, are somewhere within the viewable area of the control, but the exact position of the node is unknown.
To position the node more precisely, use the
Note: If the includeChildNodes parameter is true and the node and its child nodes won't fit in the viewable area then this node will become the top node.
This method gets called during paste and load operations.
The default implementation does nothing.
Note: The GetCellValue property can be used as an alternative to accessing the
Note: The GetCellValue property can be used as an alternative to accessing the
Note: If this
Note: If the
Note: This method is only applicable when the
Note: If this
Note: If the
The ActivateCell method causes the cell defined by the specified column to
become the
Note: The ActivateCell method can be used as an alternative to setting the control's
Returns Nothing if the node has no associated control.
If a height has been specified, it is returned.
Otherwise the calculated height is returned.
The handle is just an integer that uniquely identifies a node during a session, even across different tree controls.
However, be aware that this handle is only valid during the session and is therefore not persistable.
The Expanded property of a node is independent of whether or not the node has any children. If a node with no children has its Expanded property set to true, the node will act as though it is expanded. This means it will use the
Visible determines whether or not the control paints the node and it's children. A node whose Visible property is set to false will never displays.
Visible should not be confused with IsInView or BringIntoView, which affect if the node is within the viewable area of the control.
Returns true if the node is fully visible. This means that the node must be scrolled into view and it's parents (if any) must be
Note: If any part of the node is not visible, this method returns false.
This method returns the next visible node in the tree ignoring levels and scrolling, but taking into account expansion of nodes. So a node whose parent is collapsed will not be returned by this method. But a node that is scrolled out of view will be returned.
If there is no next visible node, this method returns Nothing.
For a root node, the return value is Nothing
This method returns the
This method returns the previous visible node in the tree ignoring levels and scrolling, but taking into account expansion of nodes. So a node whose parent is collapsed will not be returned by this method. But a node that is scrolled out of view will be returned.
If there is no previous visible node, this method returns Nothing.
The
This property only applies to a node whose
A disabled node can never be
A disabled node cannot be
Note: To disable cells without disabling the node itself, set the
Also note that if any ancestor node of this
An
A disabled node cannot be edited, selected or activated; nor can its
Setting the Selected state of a node will automatically update the
LeftImages is a collection of images that will appear to the left of the
To add images to the right of the node's
Each item added to this collection may be an image or (if the
By default, this property returns true if the
RightImages is a collection of images that will appear to the right of the
To add images to the left of the node's
Each item added to this collection may be an image or (if the
By default, this property returns true if the
Root nodes are level 0. Children of the root are Level 1, etc.
The resolved
When the associated
The resolved
The resolved
The resolved
The resolved
The resolved
The resolved
The resolved
The resolved
Keys must be unique throughout the UltraTree control.
Any node with a key can be referenced anywhere in the UltraTree control by calling the
DataKey is essentially an additional Tag property of a node which can be used for storing key information for relational data. It is intended for use when the
The resolved
The default text editor doesn't have any buttons except if there is an UltraInkProvider component on the form whose Visible property is true. This is used on TabletPCs to capture ink when editing the text. Other editors may or may not have button elements.
If
The resolved
The resolved
The resolved
When no specific value has been set anywhere in the resolution hierarchy, this property returns true, unless the
The Cells collection contains instances of the
Note: Cells are only displayed by nodes that have an
Note: A node will display cells if the
The DataColumnSetResolved property refers to the
The DataColumnSetResolved property refers to the
A band node is a node used in a databound tree to separate bands. The band node represents a table, relationship, or other list object in the underlying data source.
If this node is a band node, then the BandName indicates the name of the table, relationship, or other list object represented by the node. If this is a regular databound node, the Band Name returns the name of the band to which the node belongs.
The AllowCellEdit property is exposed by each of the column-related objects (
Note: When the AllowCellEdit property is set to 'Disabled', cells are disabled, but the node itself is not; behavior is different in this case than when the node's
Cells can be disabled by setting the AllowCellEdit property to 'Disabled'.
The end user can be prevented from changing a cell's contents, while still being allowed to copy the cell's contents, by setting the AllowCellEdit property to 'ReadOnly'.
The AllowCellEdit property does not, by itself, determine the behavior exhibited when a cell is clicked with the mouse; the
The new node will be created with no
A bound nodes collection cannot be cleared.
The nodes are added to the bottom of the collection.
Returns the node from the collection at the specified
This indexer will return only node objects within the collection. It will not return child nodes. To find a node in any collection, use the
Returns the UltraTree control that the nodes collection belongs to, or null (Nothing in VB) if there is no control.
Note: The ParentNode may return null.
This
Note: this will return false if the element or any of its ancestors are disabled.
The
The
The
When performing complex operation on the control, such as enabling/disabling many nodes, it is sometimes advantages to suspend the painting of the control to improve efficiency. Calling BeginInit will suspend all painting of the contorl until EndInit is called.
When performing complex operation on the control, such as enabling/disabling many nodes, it is sometimes advantages to suspend the painting of the control to improve efficiency. Calling BeginInit will suspend all painting of the contorl until EndInit is called.
The collapse of any node may still be canceled in the
The expansion of any node may still be canceled in the
This overload of the method will expand only nodes that have children. To Expand all nodes with or without children, use
Invoke this method to simulate an action the user can perform.
Many actions are only appropriate in certain situations; if an action is inappropriate, it will not be performed. For example, attempting to delete rows by performing the DeleteRows action (37 - KeyActionDeleteRows) will have no effect if no rows are selected. Similarly, an attempt to toggle a cell's dropdown list by performing a droptown toggle action (14 - KeyActionToggleDropdown) will also be ignored if the column does not have a dropdown list associated with it.
You can use the
Determines if the specified key already exists in the UltraTree control. All keys in the control must be unique, even for nodes on different levels or under different parents.
Returns a node with the specified key from anywhere in the control, if it exists. If the key is not found, Nothing is returned.
Note: All keys in the control must be unique, regardless of level or parent.
Returns a Boolean value that determines whether the
Returns True if the
Invoke the
Invoke this method to reset the
Once this method is invoked, the
This method essentially resets the expansion indicator of a node that is loading chilren "on demand.".
When a node whose
This method essentially resets the expansion indicator of a node that is loading chilren "on demand.".
When a node whose
This method essentially resets the expansion indicator of a node that is loading chilren "on demand.".
When a node whose
This method essentially resets the expansion indicator of a node that is loading chilren "on demand.".
When a node whose
Note: The location where the settings are stored varies depending on the configuration of the system running the application. Information about where these locations are is currently unavailable in Microsoft's MSDN Library.
Note: The location where the settings are stored varies depending on the configuration of the system running the application. Information about where these locations are is currently unavailable in Microsoft's MSDN Library.
Note: The location where the settings are stored varies depending on the configuration of the system running the application. Information about where these locations are is currently unavailable in Microsoft's MSDN Library.
This method must be called after Infragistics.Win.UltraControlBase.BeginUpdate(). If BeginUpdate was called without a subsequent call to EndUpdate the control will not draw itself. Note: Calling this method passing in false should only be done when it is known that the changes made between the Infragistics.Win.UltraControlBase.BeginUpdate() and EndUpdate calls did not require invalidation or dirtying of the elements or when the invalidation is being handled by the programmer.
If painting operations for the control are suspended, as they are
between calls to the
The
The
The
The
The
The
The
Settng the
The
Setting the
The
This event applies only to nodes whose
The
Setting the
Setting the
The
By default, the UltraTree will automatically display a confirmation dialog before Deleting nodes. To prevent this dialog from appearing, set the
The
Setting the
The
Setting the
When
The
Setting the
The exact firing of this event will depend on the
When
When
Note: This event does not initiate a DragDrop event. It fires when the user clicks and drags a node to give the programmer the opportunity to begin the DragDrop.
This event can be used to validate the new node text entered into the edit window before it is committed to the node.
The e.NodeText parameter gets/sets the new node text.
This event fires when the tree generates a new
The Appearances collection is a colletion of Appearances supplied for convenience. The Appearances in this collection have no direct effect on any object in the control. They are intended to be used as a repository of standard appearances which can then be applied to object in the control by assigning the appearance of the object to one of the items in the collection.
There can only be one ActiveNode in the
The ActiveNode will take on the
Note: When the ActiveNode is about to change, it triggers the firing of the
The
If there is no
This override is last in precendence, meaning that any other
This value determines how far each level of nodes is indented, relative to the previous level.
Each item in the NodeLevelOverrides collection applies to all nodes that are on a particular level of the UltraTree.
NodeLevelOverride(0) applies to all root nodes, NodeLevelOverrides(1) applies to all nodes that are direct children of the root, etc.
This collection supports lazy creates, so items in the collection can be referenced without explicitly calling the
This collection contains references to all selected nodes in the UltraTree. Adding a Node to this collection will select the node. Removing a node from this collection will deselect the node.
Any time a node is selected/deselected, either by user action or in code, it is automatically added/removed from the SelectedNodes collection.
Using the EventManager, the firing of events can be enabled or disabled.
Disabling an event will not have any effect on the internal processing of the control. It will only stop the Event handler from being called.
Note: When the
If ShowRootLines is set to false, root nodes will not show lines or expansion indicators, regardless of the value of the
Note: When the
The ExpansionIndicatorColor property provides a way for the end developer to customize the foreground color for all expansion indicators displayed by the control, without having to use an Appearance object. When ExpansionIndicatorColor property is left at its default value (Color.Empty), the node's resolved appearance dictates the color.
Note: The ExpansionIndicatorColor property only affects the foreground color of the expansion indicator, i.e., the '+' or '-' portion, and not the square border. TO change the color of the square border, use the BorderColor property of the
Also note that on operating systems which support theming (e.g., Windows XP), the ThemedElementAlpha property of the
Controls the color of the connector lines between nodes.
Setting the TopNode will scroll the tree so that the specified node is at the top of the visible area.
Note: When the
The default keyboard behavior for the
KeyActionMapping objects can be modified, deleted, or added to change the keyboard behavior of the control.
The following table lists the default key mappings for the
| KeyCode | ActionCode | StateRequired | StateDisallowed | SpecialKeysRequired | SpecialKeysDisallowed |
|---|---|---|---|---|---|
| Right | NextNode | NodeHasChildren | InEdit, NodeExpandable, ActiveCell | None | AltCtrl |
| Left | ParentNode | NodeChild | InEdit, NodeExpanded, ActiveCell | None | AltCtrl |
| Up | PrevNode | None | InEdit, ActiveCell | None | AltCtrl |
| Down | NextNode | None | InEdit, ActiveCell | None | AltCtrl |
| Home | FirstNode | None | InEdit, ActiveCell | None | AltCtrl |
| End | LastNode | None | InEdit, ActiveCell | None | AltCtrl |
| Right | ExpandNode | NodeExpandable | InEdit, ActiveCell | None | Alt |
| Left | CollapseNode | NodeExpanded | InEdit, ActiveCell | None | Alt |
| Prior | PageUp | None | InEdit, ActiveCell | None | AltCtrl |
| Next | PageDown | None | InEdit, ActiveCell | None | AltCtrl |
| Escape | ExitEditMode | InEdit | CellInEditMode | None | Alt |
| Enter | ExitEditModeAndSave | InEdit | CellInEditMode | None | AltCtrl |
| F2 | EnterEditMode | None | InEdit, ActiveCell | None | Alt |
| F2 | ExitEditModeAndSave | InEdit | CellInEditMode | None | Alt |
| Multiply | ExpandAllNode | None | InEdit, ActiveCell | None | All |
| Add | ExpandNode | NodeExpandable | InEdit, ActiveCell | None | Alt |
| Subtract | CollapseNode | NodeExpanded | InEdit, ActiveCell | None | Alt |
| Back | ParentNode | NodeChild | InEdit, ActiveCell | None | AltCtrl |
| Space | ToggleSelection | None | InEdit, ActiveCell | Ctrl | Alt |
| Space | ClearAllSelectedNodes | None | InEdit, ActiveCell | None | AltCtrl |
| Space | SelectActiveNode | None | InEdit, ActiveCell | None | AltCtrl |
| Space | ToggleCheckbox | IsCheckbox | InEdit, ActiveCell | None | AltCtrl |
| Space | CheckOptionButton | IsOptionButton | InEdit, ActiveCell | None | AltCtrl |
| Delete | DeleteNodes | None | InEdit, ActiveCell | None | AltCtrl |
| Right | ExpandNode | NodeExpandable | InEdit, ActiveCell | Ctrl | Alt |
| Left | CollapseNode | NodeExpanded | InEdit, ActiveCell | Ctrl | Alt |
| Up | PrevNodeNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| Down | NextNodeNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| Home | FirstNodeNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| End | LastNodeNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| Prior | PageUpNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| Next | PageDownNoSelect | None | InEdit, ActiveCell | Ctrl | Alt |
| X | Cut | AllowCut | InEdit, ActiveCell | Ctrl | AltShift |
| C | Copy | AllowCopy | InEdit, ActiveCell | Ctrl | AltShift |
| V | Paste | AllowPaste | InEdit, ActiveCell | Ctrl | AltShift |
| Delete | Cut | AllowCut | InEdit, ActiveCell | Shift | AltCtrl |
| Insert | Copy | AllowCopy | InEdit, ActiveCell | Ctrl | AltShift |
| Insert | Paste | AllowPaste | InEdit, ActiveCell | Shift | AltCtrl |
| Left | NoAction | None | InEdit, NodeChild, NodeExpanded, ActiveCell | None | AltCtrl |
| Right | NoAction | None | InEdit, NodeHasChildren, ActiveCell | None | AltCtrl |
| Left | ParentNode | NodeChild, NodeExpanded | InEdit, NodeHasChildren, ActiveCell | None | AltCtrl |
| Right | NextNode | ActiveCell, ActiveCellIsInLastLogicalColumn | CellInEditMode, NextNodeDisplaysCells | None | All |
| Down | NextNode | ActiveCell, ActiveCellIsOnLastLogicalRow | CellInEditMode, NextNodeDisplaysCells | None | All |
| Left | PrevNode | ActiveCell, ActiveCellIsInFirstLogicalColumn | CellInEditMode, PreviousNodeDisplaysCells | None | All |
| Up | PrevNode | ActiveCell, ActiveCellIsOnFirstLogicalRow | CellInEditMode, PreviousNodeDisplaysCells | None | All |
| Home | FirstCellInNode | ActiveCell | CellInEditMode, FirstCellActive | None | All |
| End | LastCellInNode | ActiveCell | CellInEditMode, LastCellActive | None | All |
| Home | FirstCellInNodesCollection | FirstCellActive | CellInEditMode | None | All |
| End | LastCellInNodesCollection | LastCellActive | CellInEditMode | None | All |
| Home | FirstCellInTree | ActiveCell | CellInEditMode | Ctrl | AltShift |
| End | LastCellInTree | ActiveCell | CellInEditMode | Ctrl | AltShift |
| End | LastCellInTree | ActiveCell | CellInEditMode | Ctrl | AltShift |
| Right | NextCell | ActiveCell | CellInEditMode | None | All |
| Left | PreviousCell | ActiveCell | CellInEditMode | None | All |
| Up | AboveCell | ActiveCell | CellInEditMode | None | All |
| Down | BelowCell | ActiveCell | CellInEditMode | None | All |
| F2 | EnterEditModeOnCell | ActiveCell | CellInEditMode | None | All |
| F2 | ExitEditModeOnCellSaveChanges | ActiveCell, CellInEditMode | None | None | All |
| Escape | UndoCellEdit | ActiveCell, CellInEditMode | None | None | All |
| Escape | UndoNodeEdit | HasNodeChangesPending | InEdit, CellInEditMode | None | All |
| Tab | SelectNextControl | LastCellActive, LastNodeActive | TabKeyNavigatesToNextCell, TabKeyNavigatesToNextControl | None | All |
| Tab | SelectPreviousControl | FirstCellActive, FirstNodeActive | TabKeyNavigatesToNextCell, TabKeyNavigatesToNextControl | Shift | AltCtrl |
| Tab | NextCellEnterEditMode | ActiveCell | None | None | All |
| Tab | PreviousCellEnterEditMode | ActiveCell | None | Shift | AltCtrl |
| Space | DeactivateCell | ActiveCell | CellInEditMode | Ctrl | AltShift |
| Space | FirstCellInNode | ActiveNodeDisplaysCells | ActiveCell | Ctrl | AltShift |
The Rectangle returned by this method represents the client area of the control. It does include borders or Scrollbars.
Determines the amount of blank space before each image. This is used to seperate images in the
When True and when the control is not in edit mode, pressing keyboard keys will automatically invoke a search of
A short delay will clear the entered keys and start searching again from the first character entered.
This keyboard searching will always search on the
The node matching the entered keys will be made the
Note: In the case where the control is bound to a data source, the value of the
To turn off automatic expansion of nodes, use the
Note: This property is ignored when either
When set to a color other than Color.Transparent (the default), all occurrences of the color in the image will be made transparent.
If an image is supplied by setting an Appearance.Image property to an Imagelist index, the ImageLists TransparentColor property is looked at first. If the property is set to Color.TransparentColor, then the control's ImageTransparentColor is used. If it is set to Color.TransparentColor, then no color masking is done.
If an image is supplied by setting the Appearance.Image property to an image, the control's ImageTransparentColor is used. If it is set to Color.TransparentColor, then no color masking is done.
Note: The location where the settings are stored varies depending on the configuration of the system running the application. Information about where these locations are is currently unavailable in Microsoft's MSDN Library.
Note: The location where the settings are stored varies depending on the configuration of the system running the application. Information about where these locations are is currently unavailable in Microsoft's MSDN Library.
When SynchronizeCurrencyManager is set to true, the tree will attempt to synchronize the position of the CurrencyManager any time the ActiveNode changes to a bound node.
Note that the positioning of the CurrencyManager can be a slow process. It is highly recommend that you do not set SynchronizeCurrencyManager to true when your data has more than a few levels. If you data structure is a hierarchy of more than 5 to 8 levels (or is recursive), synchronization may cause performance issues.
In the absence of a specific setting, the value returned by the ViewStyleResolved property is dependent on whether the
The ScrollBounds property makes it possible to prevent vertical scrolling past the point where the last visible
Note: Setting the ScrollBounds can cause the
This property does not automatically cause the items to be adjusted. Instead it will adjust items when a notification that a single column's visible or span property is changed.
As with the
Note: The ActiveCell by definition must belong to the
Note: The
The UpdateMode property defines which type of navigation by the end user will result in cell value(s) being committed to the underlying data source. When set to 'OnActiveCellChange', the value is committed when the currently active cell "loses focus"; for example, the end user clicks on or otherwise navigates to a different cell. The 'OnActiveCellChangeOrLostFocus' setting produces the same result as the 'OnActiveCellChange' setting, except that the cell value(s) will also be committed if the control loses the input focus. When set to 'OnActiveNodeChange', the value is committed when the currently active node "loses focus"; for example, the end user clicks on or otherwise navigates to a cell in a different node. The 'OnActiveNodeChangeOrLostFocus' setting produces the same result as the 'OnActiveNodeChange' setting, except that the cell value(s) will also be committed if the control loses the input focus.
By default, the
Note: Nodes on which the
In previous versions of the control, node selection behavior was governed exclusively by the
When the SelectionBehavior property is set to 'ExtendedAcrossCollections' or 'ExtendedAutoDragAcrossCollections', the SelectionType property of the Override is no longer applicable, except under the following circumstances:
The value of the IncludeCollapsedDescendantsOnRangeSelection property is only applicable to range (a.k.a., contiguous) selection, i.e., when the user
selects by clicking a node while pressing the
In the case where a data bound node is part of the range selection, and IncludeCollapsedDescendantsOnRangeSelection is set to true, the act of selecting that node can trigger the population of its Nodes collection, as well as those of its descendants.
By default, nodes which are not visible in the user interface because an ancestor node is collapsed are not included in a range selection. Setting the IncludeCollapsedDescendantsOnRangeSelection property to true changes this behavior, so that all descendants of each node in a range selection (except for the last one) are selected along with their ancestors.
In the case where the user creates a range selection by clicking a node while pressing the Shift key, descendants of the node that was clicked are not selected, i.e., the clicked-on node is always the last node in the selection range. This is also true for the last node that is dragged to in a drag selection operation.
Listeners of the
Indicates whether the control can utilize an
GetEditorContext and
Implementing owner will return the object that was last cached using SetEditorContext method.
The
Implementing owner will return the object that was last cached using SetEditorContext method.
By default, an editor might display a custom cursor, appropriate to the type of editor it is; for example, the
If the editor's owner does not want the editor to display its default cursor, it must return false from this method.
The default implementation returns true.