Infragistics2.Win.UltraWinTree.v8.1
BeforeNodeLayoutItemResize Event
See Also  Example
Infragistics.Win.UltraWinTree Namespace > UltraTree Class : BeforeNodeLayoutItemResize Event

Occurs before a node layout item (i.e., a column header or cell) is resized by the end user.

Syntax

Visual Basic (Declaration) 
Public Event BeforeNodeLayoutItemResize() As BeforeNodeLayoutItemResizeEventHandler
C# 
public event BeforeNodeLayoutItemResizeEventHandler BeforeNodeLayoutItemResize()

Example

The following code sample demonstrates how to use the BeforeNodeLayoutItemResize and AfterNodeLayoutItemResize events.

For an overview of how to handle events in Visual Basic or Visual C#, see Event Handlers in Visual Basic and Visual C#. For specific information and code examples illustrating how to consume events in your application, see Consuming Events in the .NET Framework Developer's Guide.

Visual BasicCopy Code
Imports Infragistics.Win
Imports Infragistics.Win.Layout
Imports Infragistics.Win.UltraWinTree

    Private Sub ultraTree1_AfterNodeLayoutItemResize(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.AfterNodeLayoutItemResizeEventArgs) Handles ultraTree1.AfterNodeLayoutItemResize

        ' Output a message to the debug window describing the resize operation
        Dim message As String = String.Empty
        If (e.IsCell) Then
            message = "Cell '" + e.Cell.Text + "' was successfully resized."
        Else
            message = "The header of column '" + e.Column.TextResolved + "' was successfully resized."
        End If

    End Sub

    Private Sub ultraTree1_BeforeNodeLayoutItemResize(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.BeforeNodeLayoutItemResizeEventArgs) Handles ultraTree1.BeforeNodeLayoutItemResize
        ' Disallow cell resizing for non-root level nodes
        If Not e.Node Is Nothing AndAlso e.Node.Level > 0 Then

            e.Cancel = True
            Return
        End If

        Dim originalSize As Size = Size.Empty

        ' Determine whether a cell or header was resized
        If (e.IsLabel) Then
            originalSize = e.Column.LayoutInfo.PreferredLabelSize
        Else
            originalSize = e.Column.LayoutInfo.PreferredCellSize
        End If

        ' Determine the amount by which the item was resized
        Dim delta As Size = New Size(e.NewSize.Width - originalSize.Width, e.NewSize.Height - originalSize.Height)

        ' Output a message to the debug window describing the resize operation
        Dim message As String = String.Empty
        If (e.IsCell) Then
            message = "Cell '" + e.Cell.Text + "' is being resized by " + delta.Width.ToString() + " units horizontally and " + delta.Height.ToString() + " units vertically."
        Else
            message = "The header of column '" + e.Column.TextResolved + "' is being resized by " + delta.Width.ToString() + " units horizontally and " + delta.Height.ToString() + " units vertically."
        End If

        Debug.WriteLine(message)

    End Sub

C#Copy Code
using Infragistics.Win;
using Infragistics.Win.Layout;
using Infragistics.Win.UltraWinTree;
using System.Diagnostics;

       
private void ultraTree1_AfterNodeLayoutItemResize(object sender, Infragistics.Win.UltraWinTree.AfterNodeLayoutItemResizeEventArgs e)
       {
           
//    Output a message to the debug window describing the resize operation
           
string message = string.Empty;
           
if ( e.IsCell )
               message =
"Cell '" + e.Cell.Text + "' was successfully resized.";
           
else
               
message = "The header of column '" + e.Column.TextResolved + "' was successfully resized.";
       }

       
private void ultraTree1_BeforeNodeLayoutItemResize(object sender, Infragistics.Win.UltraWinTree.BeforeNodeLayoutItemResizeEventArgs e)
       {
           
//    Disallow cell resizing for non-root level nodes
           
if ( e.Node != null && e.Node.Level > 0 )
           {
               e.Cancel = true;
               
return;
           }

           Size originalSize = Size.Empty;

           
//    Determine whether a cell or header was resized
           
if ( e.IsLabel )
               originalSize = e.Column.LayoutInfo.PreferredLabelSize;
           
else
               
originalSize = e.Column.LayoutInfo.PreferredCellSize;

           
//    Determine the amount by which the item was resized
           
Size delta = new Size(    e.NewSize.Width - originalSize.Width,
                                   e.NewSize.Height - originalSize.Height );

           
//    Output a message to the debug window describing the resize operation
           
string message = string.Empty;
           
if ( e.IsCell )
               message =
"Cell '" + e.Cell.Text + "' is being resized by " + delta.Width.ToString() + " units horizontally and " + delta.Height.ToString() + " units vertically.";
           
else
               
message = "The header of column '" + e.Column.TextResolved + "' is being resized by " + delta.Width.ToString() + " units horizontally and " + delta.Height.ToString() + " units vertically.";

           Debug.WriteLine( message );
       }

See Also