Solved

change icon of drag treeview node

Posted on 2009-05-14
14
438 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
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 

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
 

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

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Get the selected ValueMember of Combobox 5 39
Modal Popup Extender control 1 38
Help with exporting to excel 4 36
FInd Image Control Gridview 3 21
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…

860 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