We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

How to capture the Copy Event or How to modify default pop-up menu to capture the Copy Event?

Dear. Fellows.

Hello. This is Won.

I have encountered regarding a problem with 'Copy' and 'Paste' events in a Diagram control. Actually, I need to capture Copy event to recognize selected objects for copying. But I cannot find any handle to capture it. At least, I tried to modify Pop-up menu (Operated by Mouse R click) and capture a mouse click event when a user clicks 'Copy' button in a pop-up menu. But both are not accomplished. I could not find any passage to get the Copy Event or Pop-up menu event.

I do not have enough experience as a Syncfusion user (about few weeks). I think there is a way that I did not find. I need you experts helps very much.

Thank you.

1 Reply

SK Swarnesh Krishna Kumar Syncfusion Team August 6, 2015 12:39 PM UTC

Hi Won,
Thanks for using Syncfusion Products.
We suggest you to disable the DefaultContextMenu and create a desired context menu in order to achieve your requirement. We have attached a sample for your reference.
Here is the Code Snippet:
//To disable the DefaultContextMenu
this.diagram2.DefaultContextMenuEnabled = false;

//Creation of Context Menu
System.Windows.Forms.ContextMenu cvp = new System.Windows.Forms.ContextMenu();

cvp.MenuItems.Add("Copy");


//Event while clicking the context menu item

cvp.MenuItems[0].Click += Form1_Click;
diagram2.ContextMenu = cvp;

//Rendering the Mouse Click event
diagram2.MouseClick+=diagram2_MouseClick;

//Capturing the node

void Form1_Click(object sender, EventArgs e)

        {

            diagram2.Controller.Copy();

            IDataObject clipboardData = Clipboard.GetDataObject();

            ClipboardNodeCollection c = (ClipboardNodeCollection)clipboardData.GetData(typeof(ClipboardNodeCollection));

            NodeCollection nodes = c as NodeCollection;

            foreach (Node n in nodes)

            {

                Sel_Node = n;

                Sel_Node.PinPoint = new Point(100, 100);

                diagram2.Model.AppendChild(Sel_Node);

            }


        }
Here is the Sample:
Sample
Please let us know if any concerns.
Regards,
Swarnesh K


Loader.
Live Chat Icon For mobile
Up arrow icon