Version

NavigationPaneCollapsing Event

Occurs before the navigation pane is collapsed.
Syntax
'Declaration
 
Public Event NavigationPaneCollapsing As NavigationPaneCollapsingEventHandler
public event NavigationPaneCollapsingEventHandler NavigationPaneCollapsing
Event Data

The event handler receives an argument of type NavigationPaneCollapsingEventArgs containing data related to this event. The following NavigationPaneCollapsingEventArgs properties provide information specific to this event.

PropertyDescription
Cancel (Inherited from System.ComponentModel.CancelEventArgs) 
PreferredWidth (Inherited from Infragistics.Win.UltraWinExplorerBar.NavigationPaneExpandedStateChangingEventArgsBase)Gets/sets the width of the UltraExplorerBar control when the navigation pane is collapsed or expanded.
Remarks

Important note: When the ExplorerBar's System.Windows.Forms.Control.Dock property is set to a value other than 'None', the collapsible navigation pane feature will not function properly. This is because the feature relies on setting the control's System.Windows.Forms.Control.Width property, which is not supported for all values of the Dock property. This limitation can be overcome, however, using the public object model; the end developer can handle the NavigationPaneExpanding and NavigationPaneCollapsing events, and set the width of the ExplorerBar's System.Windows.Forms.Control.Parent to the same value as that of the NavigationPaneExpandedStateChangingEventArgsBase.PreferredWidth property of the event arguments.

The end developer can prevent the navigation pane from being collapsed by canceling the NavigationPaneCollapsing event (i.e., setting the Cancel property of the event arguments to true).

Example
The following code sample demonstrates how to use the NavigationPaneExpanding and NavigationPaneCollapsing events to handle the expanding and collapsing of the ExplorerBar when it is docked inside a Panel control:

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.

Imports Infragistics.Win
Imports Infragistics.Win.UltraWinExplorerBar

    '   Handles the Form's 'Load' event
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '   Add the ExplorerBar to the Panel's Controls collection
        Me.panel1.Controls.AddRange(New System.Windows.Forms.Control() {Me.ultraExplorerBar1})

        '   Dock the Panel control to the left side of the form
        Me.panel1.Dock = System.Windows.Forms.DockStyle.Left

        '   Dock the ExplorerBar to completely fill the Panel control
        Me.ultraExplorerBar1.Dock = System.Windows.Forms.DockStyle.Fill

        '   Set the NavigationPaneExpansionMode property to 'OnButtonClickOrSizeChanged'
        '   so that the navigation pane's expanded state is changed on both button clicks
        '   and control resizing.
        Me.ultraExplorerBar1.NavigationPaneExpansionMode = NavigationPaneExpansionMode.OnButtonClickOrSizeChanged

        '   Set the NavigationPaneExpansionThreshold property so that resizing the
        '   width smaller than 50 pixels causes the navigation pane to collapse.
        Me.ultraExplorerBar1.NavigationPaneExpansionThreshold = 50

        '	Hook the NavigationPaneExpanding and NavigationPaneCollapsing events
        AddHandler Me.ultraExplorerBar1.NavigationPaneExpanding, AddressOf Me.ultraExplorerBar1_NavigationPaneExpanding
        AddHandler Me.ultraExplorerBar1.NavigationPaneCollapsing, AddressOf Me.ultraExplorerBar1_NavigationPaneCollapsing

        '	Set the NavigationPaneExpandedState to 'Collapsed' so that the ExplorerBar is initially collapsed
        Me.ultraExplorerBar1.NavigationPaneExpandedState = NavigationPaneExpandedState.Collapsed
    End Sub

    '	Handles the ExplorerBar's 'NavigationPaneCollapsing' event.
    Private Sub ultraExplorerBar1_NavigationPaneCollapsing(ByVal sender As Object, ByVal e As NavigationPaneCollapsingEventArgs)
        Dim explorerBar As UltraExplorerBar = sender
        Me.OnNavigationPaneExpandedStateChanging(explorerBar, e)
    End Sub

    '	Handles the ExplorerBar's 'NavigationPaneExpanding' event.
    Private Sub ultraExplorerBar1_NavigationPaneExpanding(ByVal sender As Object, ByVal e As NavigationPaneExpandingEventArgs)
        Dim explorerBar As UltraExplorerBar = sender
        Me.OnNavigationPaneExpandedStateChanging(explorerBar, e)
    End Sub

    '	Helper method which handles synchronization of the width of
    '	the ExplorerBar's parent with that of the ExplorerBar.
    Private Sub OnNavigationPaneExpandedStateChanging(ByVal explorerBar As UltraExplorerBar, ByVal e As NavigationPaneExpandedStateChangingEventArgsBase)

        '	If the ExplorerBar's Dock property is set to 'Fill',
        '	synchronize the width of the container with that of
        '	the ExplorerBar.
        If explorerBar.Dock = DockStyle.Fill Then

            Dim parentControl As Control = explorerBar.Parent
            If Not parentControl Is Nothing Then parentControl.Width = e.PreferredWidth
        End If

    End Sub
using Infragistics.Win;
using Infragistics.Win.UltraWinExplorerBar;
using System.Diagnostics;

		//	Handles the Form's 'Load' event.
		private void Form1_Load(object sender, System.EventArgs e)
		{
			//	Add the ExplorerBar to the Panel's Controls collection
			this.panel1.Controls.AddRange(new System.Windows.Forms.Control[] { this.ultraExplorerBar1 } );

			//	Dock the Panel control to the left side of the form
			this.panel1.Dock = System.Windows.Forms.DockStyle.Left;

			//   Set the NavigationPaneExpansionMode property to 'OnButtonClickOrSizeChanged'
			//   so that the navigation pane's expanded state is changed on both button clicks
			//   and control resizing.
			this.ultraExplorerBar1.NavigationPaneExpansionMode = NavigationPaneExpansionMode.OnButtonClickOrSizeChanged;

			//   Set the NavigationPaneExpansionThreshold property so that resizing the
			//   width smaller than 50 pixels causes the navigation pane to collapse.
			this.ultraExplorerBar1.NavigationPaneExpansionThreshold = 50;

			//	Hook the NavigationPaneExpanding and NavigationPaneCollapsing events
			this.ultraExplorerBar1.NavigationPaneExpanding += new Infragistics.Win.UltraWinExplorerBar.NavigationPaneExpandingEventHandler(this.ultraExplorerBar1_NavigationPaneExpanding);
			this.ultraExplorerBar1.NavigationPaneCollapsing += new Infragistics.Win.UltraWinExplorerBar.NavigationPaneCollapsingEventHandler(this.ultraExplorerBar1_NavigationPaneCollapsing);		

			//	Set the NavigationPaneExpandedState to 'Collapsed' so that the ExplorerBar is initially collapsed
			this.ultraExplorerBar1.NavigationPaneExpandedState = NavigationPaneExpandedState.Collapsed;
		}

		//	Handles the ExplorerBar's 'NavigationPaneCollapsing' event.
		private void ultraExplorerBar1_NavigationPaneCollapsing(object sender, Infragistics.Win.UltraWinExplorerBar.NavigationPaneCollapsingEventArgs e)
		{
			UltraExplorerBar explorerBar = sender as UltraExplorerBar;
			this.OnNavigationPaneExpandedStateChanging( explorerBar, e );
		}

		//	Handles the ExplorerBar's 'NavigationPaneExpanding' event.
		private void ultraExplorerBar1_NavigationPaneExpanding(object sender, Infragistics.Win.UltraWinExplorerBar.NavigationPaneExpandingEventArgs e)
		{
			UltraExplorerBar explorerBar = sender as UltraExplorerBar;
			this.OnNavigationPaneExpandedStateChanging( explorerBar, e );		
		}

		//	Helper method which handles synchronization of the width of
		//	the ExplorerBar's parent with that of the ExplorerBar.
		private void OnNavigationPaneExpandedStateChanging( UltraExplorerBar explorerBar, NavigationPaneExpandedStateChangingEventArgsBase e )
		{
			//	If the ExplorerBar's Dock property is set to 'Fill',
			//	synchronize the width of the container with that of
			//	the ExplorerBar.
			if ( explorerBar.Dock == DockStyle.Fill )
			{
				Control parentControl = explorerBar.Parent;
				if ( parentControl != null )
					parentControl.Width = e.PreferredWidth;
			}
		}
Requirements

Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also