.NET

Reply
Active Contributor
farrukhw
Posts: 26
Registered: ‎05-07-2009
Message 1 of 6 (634 Views)
Accepted Solution

Mouse Cursor while dragging from .Net ListView to AutoCAD drawing area?

634 Views, 5 Replies
02-27-2013 09:21 AM

Hi experts,

I have a ListView control from where I drag items to Drawing area. Whenever mouse leaves the ListView Control and enters the AutoCAD drawing area, AutoCAD claims the mouse cursor back to Cross Pointer.

Is it possible to change this cursor during drag operation to a pointer with some attachment? As normally happened in Windows Explorer while dragging and dropping files among folders.

 

Thanks a bunch.

Farrukh

Valued Mentor
DiningPhilosopher
Posts: 370
Registered: ‎05-06-2012
Message 2 of 6 (610 Views)

Re: Mouse Cursor while dragging from .Net ListView to AutoCAD drawing area?

02-27-2013 01:05 PM in reply to: farrukhw

You have a ListView where?  In an AutoCAD extension?  Or, in another application? 


farrukhw wrote:

Hi experts,

I have a ListView control from where I drag items to Drawing area. Whenever mouse leaves the ListView Control and enters the AutoCAD drawing area, AutoCAD claims the mouse cursor back to Cross Pointer.

Is it possible to change this cursor during drag operation to a pointer with some attachment? As normally happened in Windows Explorer while dragging and dropping files among folders.

 

Thanks a bunch.

Farrukh


 

Active Contributor
farrukhw
Posts: 26
Registered: ‎05-07-2009
Message 3 of 6 (592 Views)

Re: Mouse Cursor while dragging from .Net ListView to AutoCAD drawing area?

02-27-2013 09:44 PM in reply to: DiningPhilosopher
Yes, its an AutoCAD Addin using C#
Active Contributor
DouceDeux
Posts: 46
Registered: ‎09-04-2012
Message 4 of 6 (582 Views)

Re: Mouse Cursor while dragging from .Net ListView to AutoCAD drawing area?

02-28-2013 07:03 AM in reply to: farrukhw
Valued Mentor
DiningPhilosopher
Posts: 370
Registered: ‎05-06-2012
Message 5 of 6 (573 Views)

Re: Mouse Cursor while dragging from .Net ListView to AutoCAD drawing area?

02-28-2013 12:28 PM in reply to: farrukhw

You'll have to show the code you're using to start the drag and drop operation.

 

BTW, the drag & drop cursor is displayed by AutoCAD, not by your application, and has nothing to do with setting a wait cursor or setting any type of cursor yourself, in case you followed the link posted in another reply.

 

 

Active Contributor
farrukhw
Posts: 26
Registered: ‎05-07-2009
Message 6 of 6 (543 Views)

Finally solved... :)

03-03-2013 11:57 PM in reply to: DiningPhilosopher

Ahhh, finally I solved it :smileyhappy:. I was trying to change the mouse cursor from Cross to Pointer with attachement (i.e. Copying).

Got the tip from Managing drag & drop from a palette into AutoCAD using .NET.

 

In our mouse event handler we have to call AutoCAD's Application.DoDragDrop method. Here is my implemention which worked as expected.

 

 

// lv_Symbols: ListView control

       void lv_Symbols_ItemDrag(object sender, ItemDragEventArgs e)
        {
            lv_SelectedItem = e.Item as ListViewItem;
            if (lv_SelectedItem != null)
            {
                Autodesk.AutoCAD.ApplicationServices.Application.DoDragDrop(this.lv_Symbols, "", DragDropEffects.Copy, new DroplvSymbols(lv_SelectedItem.Tag.ToString()));
            }
        }


 

Second parameter (DragDropEffects) is used to chagge the mouse cursor, which exactly I wanted.:smileyhappy:

 

Last parameter of DoDragDrop is another class which is handling our Drop event. Here is the listings:

public class DroplvSymbols : Autodesk.AutoCAD.Windows.DropTarget
    {
        private string cmd; //This would be send to ACAD active document
       
// Constructor
        public DroplvSymbols(string ListViewItemTag)
        {
            this.cmd = ListViewItemTag;
        }

  //Handling Drop event. We send AutoCAD a command here.      
        public override void OnDrop(DragEventArgs e)
        {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            doc.SendStringToExecute(cmd, true, false, false);
        }
    }

 

I hope it would be beneficial for others too :smileyhappy:.

 

Thanks all for your efforts.

 

Regards

Farrukh

 

Announcements
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.