Version

BeforeDockChange Event

Occurs as a dockable pane is dragged.
Syntax
'Declaration
 
Public Event BeforeDockChange As BeforeDockChangeEventHandler
public event BeforeDockChangeEventHandler BeforeDockChange
Event Data

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

PropertyDescription
Cancel (Inherited from System.ComponentModel.CancelEventArgs) 
ChangeType Returns the type of change that is occuring.
NewDockedLocation Returns the new DockedLocation for the pane.
NewIndex Returns the new index of the pane in the parent pane.
Pane (Inherited from Infragistics.Win.UltraWinDock.CancelablePaneEventArgs)DockablePaneBase instance associated with the event. This property is read-only.
Parent Returns the parent pane.
Example
The following code demonstrates how to use some of the properties of the BeforeDockChangeEventArgs to prevent the user from repositioning or docking panes in specific areas.

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.Shared
Imports Infragistics.Win
Imports Infragistics.Win.UltraWinDock

Private Sub ultraDockManager1_BeforeDockChange(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinDock.BeforeDockChangeEventArgs) Handles ultraDockManager1.BeforeDockChange

    ' The BeforeDockChange is invoked as a pane is dragged
    ' to allow you to determine whether a drop location is
    ' considered a valid drop point. Setting Cancel to
    ' true will indicate to the dock manager that the drop
    ' location is not valid. When this is done, the cursor
    ' is changed to the no cursor to indicate this to the user.
    ' If the mouse is released at that point, the drag is cancelled.
    '

    ' Only allow sliding group items to be repositioned
    ' within the parent
    If (e.ChangeType <> DockChangeType.SiblingPaneReposition AndAlso _
        Not e.Pane.Parent Is Nothing AndAlso _
        e.Pane.Parent.ChildPaneStyle = ChildPaneStyle.SlidingGroup) Then

        e.Cancel = True
    End If

    ' Any floating combination is allowed so just
    ' exit
    If (e.NewDockedLocation = DockedLocation.Floating) Then
        Return
    End If

    ' Do not allow panes to be grouped together
    If (e.ChangeType = DockChangeType.NewGroup OrElse _
        e.ChangeType = DockChangeType.NewSiblingPane) Then
        e.Cancel = True
    End If

    ' Do not allow any new docking areas to be created
    ' on the form - only floating docking areas
    If (e.ChangeType = DockChangeType.NewDockArea AndAlso _
        e.NewDockedLocation <> DockedLocation.Floating) Then
        e.Cancel = True
    End If

End Sub
using Infragistics.Shared;
using Infragistics.Win;
using Infragistics.Win.UltraWinDock;
using System.Diagnostics;


private void ultraDockManager1_BeforeDockChange(object sender, Infragistics.Win.UltraWinDock.BeforeDockChangeEventArgs e)
{

	// The BeforeDockChange is invoked as a pane is dragged
	// to allow you to determine whether a drop location is
	// considered a valid drop point. Setting Cancel to
	// true will indicate to the dock manager that the drop
	// location is not valid. When this is done, the cursor
	// is changed to the no cursor to indicate this to the user.
	// If the mouse is released at that point, the drag is cancelled.
	//

	// Only allow sliding group items to be repositioned
	// within the parent
	if (e.ChangeType != DockChangeType.SiblingPaneReposition &&
		e.Pane.Parent != null &&
		e.Pane.Parent.ChildPaneStyle == ChildPaneStyle.SlidingGroup)
		e.Cancel = true;

	// Any floating combination is allowed so just
	// exit
	if (e.NewDockedLocation == DockedLocation.Floating)
		return;

	// Do not allow panes to be grouped together
	if (e.ChangeType == DockChangeType.NewGroup ||
		e.ChangeType == DockChangeType.NewSiblingPane)
		e.Cancel = true;
	
	// Do not allow any new docking areas to be created
	// on the form - only floating docking areas
	if (e.ChangeType == DockChangeType.NewDockArea &&
		e.NewDockedLocation != DockedLocation.Floating)
		e.Cancel = true;

}
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