Back to Devexpress

XtraTabbedMdiManager.FloatMDIChildDragging Event

windowsforms-devexpress-dot-xtratabbedmdi-dot-xtratabbedmdimanager-935c6117.md

latest8.6 KB
Original Source

XtraTabbedMdiManager.FloatMDIChildDragging Event

Fires when dragging a floating page. Allows you to implement the drag-and-drop of child floating pages to another XtraTabbedMdiManager.

Namespace : DevExpress.XtraTabbedMdi

Assembly : DevExpress.XtraBars.v25.2.dll

NuGet Package : DevExpress.Win.Navigation

Declaration

csharp
[DXCategory("Events")]
public event FloatMDIChildDraggingEventHandler FloatMDIChildDragging
vb
<DXCategory("Events")>
Public Event FloatMDIChildDragging As FloatMDIChildDraggingEventHandler

Event Data

The FloatMDIChildDragging event's data class is DevExpress.XtraTabbedMdi.FloatMDIChildDraggingEventArgs.

Remarks

The FloatMDIChildDragging event allows you to implement the drag-and-drop of child floating pages to another XtraTabbedMdiManager. This can be accomplished by adding a target XtraTabbedMdiManager object to the event’s e.Targets collection. This collection contains XtraTabbedMdiManager objects that can accept the currently dragged floating page.

When a floating page is dropped over a XtraTabbedMdiManager that is found in the e.Targets collection, the page will automatically be docked to this XtraTabbedMdiManager.

Example

This example demonstrates how to use the XtraTabbedMDIManager.FloatMDIChildDragging event to implement drag-and-drop of MDI children between different XtraTabbedMDIManagers.

csharp
using System;
using System.Collections.Generic;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraTabbedMdi;

namespace DevExpress.Samples.DocumentSelector {
    public partial class MainForm : XtraForm {
        static int index = 0;
        public MainForm(StartForm owner) {
            index++;
            Owner = owner;
            InitializeComponent();
            Text += index.ToString();
            ((StartForm)Owner).Register(xtraTabbedMdiManager1);

            / ***Floating options*** /
            xtraTabbedMdiManager1.FloatOnDoubleClick = DevExpress.Utils.DefaultBoolean.True;
            xtraTabbedMdiManager1.FloatOnDrag = DevExpress.Utils.DefaultBoolean.True;
            xtraTabbedMdiManager1.FloatPageDragMode = FloatPageDragMode.Preview;
            / ***To Show form Icons in page headers*** /
            xtraTabbedMdiManager1.UseFormIconAsPageImage = DefaultBoolean.True;

            xtraTabbedMdiManager1.BeginFloating += xtraTabbedMdiManager1_BeginFloating;
            xtraTabbedMdiManager1.FloatMDIChildDragging += xtraTabbedMdiManager1_FloatMDIChildDragging;
        }
        protected override void OnClosed(EventArgs e) {
            ((StartForm)Owner).UnRegister(xtraTabbedMdiManager1);
            base.OnClosed(e); 
        }
        void xtraTabbedMdiManager1_FloatMDIChildDragging(object sender, FloatMDIChildDraggingEventArgs e) {
            /* 
             * To allow an XtraTabbedMdiManager to accept a dragged panel, 
             * the manager needs to be added to the e.Targets collection.
             */
            IEnumerable<XtraTabbedMdiManager> dropTargets = ((StartForm)Owner).GetManagers();
            foreach(XtraTabbedMdiManager manager in dropTargets) 
                e.Targets.Add(manager);
        }
        void xtraTabbedMdiManager1_BeginFloating(object sender, FloatingCancelEventArgs e) {
            e.Cancel = false; // Allow all tab pages to be dragged away from XTraTabbedMDIManager
        }
        void Form1_Load(object sender, EventArgs e) {
            if(index % 2 == 0) {
                AddChild("Recent", "Shows the recently viewed photos");
                AddChild("Favourites", "My favourite photos");
            }
            else {
                AddChild("Published", "These photos are published in my blog");
                AddChild("Unsorted", "Not reviewed photos");
            }
        }
        public void AddChild(string category, string tag) {
            ChildForm categoryForm = new ChildForm();
            categoryForm.Text = category;
            categoryForm.MdiParent = this;
            categoryForm.Tag = tag;
            categoryForm.Show();
        }
    }
}
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports DevExpress.Utils
Imports DevExpress.XtraEditors
Imports DevExpress.XtraTabbedMdi

Namespace DevExpress.Samples.DocumentSelector
    Partial Public Class MainForm
        Inherits XtraForm
        Private Shared index As Integer = 0
        Public Sub New(ByVal owner As StartForm)
            index += 1
            Me.Owner = owner
            InitializeComponent()
            Text &= index.ToString()
            CType(Me.Owner, StartForm).Register(xtraTabbedMdiManager1)

            ' **Floating options**
            xtraTabbedMdiManager1.FloatOnDoubleClick = DevExpress.Utils.DefaultBoolean.True
            xtraTabbedMdiManager1.FloatOnDrag = DevExpress.Utils.DefaultBoolean.True
            xtraTabbedMdiManager1.FloatPageDragMode = FloatPageDragMode.Preview
            ' **To Show form Icons in page headers**
            xtraTabbedMdiManager1.UseFormIconAsPageImage = DefaultBoolean.True

            AddHandler xtraTabbedMdiManager1.BeginFloating, AddressOf xtraTabbedMdiManager1_BeginFloating
            AddHandler xtraTabbedMdiManager1.FloatMDIChildDragging, AddressOf xtraTabbedMdiManager1_FloatMDIChildDragging
        End Sub
        Protected Overrides Sub OnClosed(ByVal e As EventArgs)
            CType(Owner, StartForm).UnRegister(xtraTabbedMdiManager1)
            MyBase.OnClosed(e)
        End Sub
        Private Sub xtraTabbedMdiManager1_FloatMDIChildDragging(ByVal sender As Object, ByVal e As FloatMDIChildDraggingEventArgs)
'             
' * To allow an XtraTabbedMdiManager to accept a dragged panel, 
' * the manager needs to be added to the e.Targets collection.
'             
            Dim dropTargets As IEnumerable(Of XtraTabbedMdiManager) = (CType(Owner, StartForm)).GetManagers()
            For Each manager As XtraTabbedMdiManager In dropTargets
                e.Targets.Add(manager)
            Next manager
        End Sub
        Private Sub xtraTabbedMdiManager1_BeginFloating(ByVal sender As Object, ByVal e As FloatingCancelEventArgs)
            e.Cancel = False ' Allow all tab pages to be dragged away from XTraTabbedMDIManager
        End Sub
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
            If index Mod 2 = 0 Then
                AddChild("Recent", "Shows the recently viewed photos")
                AddChild("Favourites", "My favourite photos")
            Else
                AddChild("Published", "These photos are published in my blog")
                AddChild("Unsorted", "Not reviewed photos")
            End If
        End Sub
        Public Sub AddChild(ByVal category As String, ByVal tag As String)
            Dim categoryForm As New ChildForm()
            categoryForm.Text = category
            categoryForm.MdiParent = Me
            categoryForm.Tag = tag
            categoryForm.Show()
        End Sub
    End Class
End Namespace

See Also

BeginFloating

Floating

EndFloating

FloatForms

Dock(Form, XtraTabbedMdiManager)

Floating Pages

XtraTabbedMdiManager Class

XtraTabbedMdiManager Members

DevExpress.XtraTabbedMdi Namespace