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

Occurs before selected nodes are copied to the clipboard.

Syntax

Visual Basic (Declaration) 
Public Event BeforeCopy() As BeforeCopyEventHandler
C# 
public event BeforeCopyEventHandler BeforeCopy()

Example

The following sample code illustrates some of the information available in the BeforeCopy event.

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.UltraWinTree

    Private Sub ultraTree1_BeforeCopy(ByVal sender As Object, ByVal e As Infragistics.Win.UltraWinTree.BeforeCopyEventArgs) Handles ultraTree1.BeforeCopy

        Dim sb As New System.Text.StringBuilder()
        Dim node As UltraTreeNode
        Dim dr As DialogResult

        ' Setting the Tag of the Nodes collection passed into the BeforeCut
        ' and BeforeCopy events to some serializable value can be used to
        ' identify the tree that copied the nodes to the clipboard. This Tag
        ' value will be de-serialized and set on the Nodes collection that is
        ' passed into the BeforePaste event. This can be used for preventing
        ' paste operations between trees.

        ' Set the Tag property on the Nodes collection to the tree's hash code.
        ' Note: don't set the tag to the tree itself since that isn't serializable
        e.Nodes.Tag = Me.ultraTree1.GetHashCode()

        sb.Append("The following nodes are about to be copied to the clipboard: ")

        ' Loop over the nodes that will be copied to the clipboard.
        ' Note: The Nodes collection exposed by the event args
        ' is read-only.
        For Each node In e.Nodes
            sb.Append(node.Text)
            sb.Append(", ")
        Next

        sb.Append(" Press ''OK'' or ''Cancel''.")

        dr = MessageBox.Show(Me, sb.ToString(), "Copying nodes to the clipboard", MessageBoxButtons.OKCancel)

        If dr = DialogResult.Cancel Then
            e.Cancel = True
        End If

    End Sub

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


       
private void ultraTree1_BeforeCopy(object sender, Infragistics.Win.UltraWinTree.BeforeCopyEventArgs e)
       {
           
// Setting the Tag of the Nodes collection passed into the BeforeCut
           
// and BeforeCopy events to some serializable value can be used to
           
// identify the tree that copied the nodes to the clipboard. This Tag
           
// value will be de-serialized and set on the Nodes collection that is
           
// passed into the BeforePaste event. This can be used for preventing
           
// paste operations between trees.

           
// Set the Tag property on the Nodes collection to the tree's hash code.
           
// Note: don't set the tag to the tree itself since that isn't serializable
           
e.Nodes.Tag = this.ultraTree1.GetHashCode();

           System.Text.StringBuilder sb =
new System.Text.StringBuilder();

           sb.Append(
"The following nodes are about to be copied to the clipboard: ");

           
// Loop over the nodes that will be copied to the clipboard.
           
// Note: The Nodes collection exposed by the event args
           
// is read-only.
           
foreach ( UltraTreeNode node in e.Nodes )
           {
               sb.Append( node.Text );
               sb.Append(
", " );
           }

           sb.Append(
" Press ''OK'' or ''Cancel''.");

           DialogResult dr = MessageBox.Show(
this,
                             sb.ToString(),
                             
"Copying nodes to the clipboard",
                             MessageBoxButtons.OKCancel );

           
if ( dr == DialogResult.Cancel )
               e.Cancel = true;
       }

See Also