Solved

change icon of drag treeview node

Posted on 2009-05-14
14
432 Views
Last Modified: 2012-05-07
i am using VS-2005 framework 2.0 how i can change the icon of draging node of tree on drag time and want to change icon conditionally and also icon should be same till destination tree node with mouse.  
0
Comment
Question by:farjack1
  • 7
  • 6
14 Comments
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24393795
You would need to develop a Windows Shell Extension to acheive what you are trying to do. Microsoft recommends against developing Shell extensions in .NET. The favoured language is C++ and its a big project. so may be live with it!
0
 

Author Comment

by:farjack1
ID: 24394977
1 - can you send me link where microsoft is posted these comments.
2 - we can not do this thing in vb.net?
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24395037
0
 

Author Comment

by:farjack1
ID: 24400049
Hi, i think maybe you did not understand my requirement.

1-  i want to drag tree node destination is other tree and its icon should be conditional
2-  when i will drop that node to destination tree on condition bases it mouse icon should be change
3 - Can i drag the same icon till destination node

this is my Q.

Thanks
 
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24400420
Do you want to use the custom icon or the default icon?
0
 

Author Comment

by:farjack1
ID: 24400432
i want to use my gif or icon files
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24400437
That's where you need to develop the shell extensions. I think you did not bother to read any of the articles. To show you own icon while dragging, you need to develop a shell extension. Check the last link and one of the templates is for drag icons.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:farjack1
ID: 24400441
how we can use default icons?
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24400453
lblTextSource1.DoDragDrop( lblTextSource1.Text, DragDropEffects.Copy)
lblTextSource1.DoDragDrop( lblTextSource1.Text, DragDropEffects.Move)
0
 

Author Comment

by:farjack1
ID: 24400461
i am draging tree node and droping on tree node  
0
 

Author Comment

by:farjack1
ID: 24400479
i want to change icon on detination tree as well
0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24400556
0
 

Accepted Solution

by:
lkalvin earned 500 total points
ID: 24401338
I could be missreading your question but it sounds like you're asking how to change the cursor when dragging over a specific control?

Basically, if you have more than one control on your form where dragging can BEGIN, you'll want to have a different identifier used when you DoDragDrop:

Like:
myTextBox.DoDragDrop("Dragging From myTextBox", DragDropEffects.Copy)
-or-
myTreeNode.DoDragDrop("Dragging From myTreeNode", DragDropEffects.Copy)

And if the target of the dragging is another TreeNode - in THAT node you can examine the contents of e.Data.GetDataPresent(DataFormats.StringFormat) to see where you started from:

Sub myNewTreeNode_DragOver(...e as System.Windows.Forms.DragEventArgs)
   If e.Data.GetDataPresent(DataFormats.StringFormat) Then
      Dim DragString As String = e.Data.GetDataPresent(DataFormats.StringFormat)
      Select Case DragString
         Case "Dragging From myTextBox"
             ' You know the drag came FROM myTextBox

         Case "Dragging From myTreeNode"
             ' You know the drag came FROM myTreeNode
         Case Else
      End Select
   End If
End Sub

This is (of course) PSEUDO CODE but there's very little missing - check out the Attached Code Snippet for a more detailed example of altering the cursor.


Private _Dragging As Boolean = False	' If True = Dragging has begun
 

Private Sub MyTreeNode_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyTreeNode.MouseDown

	_Dragging = True

End Sub
 

Private Sub MyTreeNode_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyTreeNode.MouseMove

	If _Dragging Then

		MyTreeNode.DoDragDrop("Some Text to Identify WHAT is being draggged", DragDropEffects.Copy)

	End If

	_Dragging = False

End Sub
 

Private Sub MyTreeNode_DragOver(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyTreeNode.DragOver

	If e.Data.GetDataPresent(DataFormats.StringFormat) Then

		e.Effect = DragDropEffects.None

	End If

End Sub
 

Private Sub MyTreeNode_GiveFeedback(ByVal sender As Object, ByVal e As System.Windows.Forms.GiveFeedbackEventArgs) Handles MyTreeNode.GiveFeedback

	e.UseDefaultCursors = False
 

	If ((e.Effect And DragDropEffects.Copy) = DragDropEffects.Copy) Then

		Dim CustomCursor As Cursor = GetCustomCursor(0)

		Cursor.Current = CustomCursor

	Else

		Dim CustomCursor As Cursor = GetCustomCursor(1)

		Cursor.Current = CustomCursor

	End If

End Sub
 

Private Function GetCustomCursor(ByVal CursorType As Integer) As Cursor

	Dim myCursor as Cursor

	

	Select Case CursorType

		Case 0

			myCursor = *someDragcursor* ' Whatever you want your Drag-Drop cursor to be

			

		Case 1

			myCursor = *someBadcursor* ' Whatever you want your Drag-Drop cursor to be
 

		Case Else

			myCursor = *someDefaultcursor* ' Whatever you want your Drag-Drop cursor to be

	End Select

	

	Return myCursor

End Function

Open in new window

0
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 24438793
BRILLIANT. So you do not know the difference between icon and cursor!!!
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
This is a video that shows how the OnPage alerts system integrates into ConnectWise, how a trigger is set, how a page is sent via the trigger, and how the SENT, DELIVERED, READ & REPLIED receipts get entered into the internal tab of the ConnectWise …
Delivering innovative fully-managed cloud services for mission-critical applications requires expertise in multiple areas plus vision and commitment. Meet a few of the people behind the quality services of Concerto.

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now