Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Aiuto errore Drag & Drop
Forum - C# / VB.NET - Aiuto errore Drag & Drop

Avatar
Goodman85 (Normal User)
Newbie


Messaggi: 3
Iscritto: 20/10/2017

Segnala al moderatore
Postato alle 12:09
Venerdė, 20/10/2017
Ciao a tutti,
ho un problema nell'esecuzione di un progammino in vb.
Ho creato un form con 2 treeview, semplicemente devo fare il drag & drop da un tree ad un altro.
Ho scritto il codice ma in fase di rilascio del nodo ho il seguente errore:

System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.'

allegato immagine.

Non riesco in nessun modo a risolvere.

Avete info?


Goodman85 ha allegato un file: Cattura.PNG (17443 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:39
Venerdė, 20/10/2017
Significa che cerchi di aggiungere al momento del drop un elemento che non č quello tenuto dal drag.

Inserisci un breackpoint dove dai alla variabile l'elemento in drag e controlla di che tipo č.

Oppure sbagli ad eseguire tutto il processo ddl drag e drop

Ultima modifica effettuata da Thejuster il 20/10/2017 alle 16:40


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Goodman85 (Normal User)
Newbie


Messaggi: 3
Iscritto: 20/10/2017

Segnala al moderatore
Postato alle 7:30
Sabato, 21/10/2017
Testo quotato

Postato originariamente da Thejuster:

Significa che cerchi di aggiungere al momento del drop un elemento che non č quello tenuto dal drag.

Inserisci un breackpoint dove dai alla variabile l'elemento in drag e controlla di che tipo č.

Oppure sbagli ad eseguire tutto il processo ddl drag e drop



Grazie per la risposta,
la variabile me la da nulla (Nothing)

Il problema che il codice l'ho trovato direttamente sulla guida di MSN.

8-|

questo č il codice:

Codice sorgente - presumibilmente VB.NET

  1. Public Class Form1
  2.  
  3.     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.         Dim Parentnode1 As TreeNode
  5.         Dim ParentNode2 As TreeNode
  6.  
  7.         Parentnode1 = TreeView1.Nodes.Add("TV 1")
  8.  
  9.         With Parentnode1
  10.             .Nodes.Add("TV1 Primo Figlio")
  11.             .Nodes.Add("TV1 Secondo Figlio")
  12.             .Nodes.Add("TV1 Terzo Figlio")
  13.             .Nodes.Add("TV1 Quarto Figlio")
  14.             .Expand()
  15.         End With
  16.  
  17.         ParentNode2 = TreeView2.Nodes.Add("TV 2")
  18.  
  19.         With ParentNode2
  20.             .Nodes.Add("TV2 Primo Figlio")
  21.             .Nodes.Add("TV2 Secondo Figlio")
  22.             .Expand()
  23.         End With
  24.  
  25.     End Sub
  26.  
  27.     Private Sub TreeView1_ItemDrag(sender As Object, e As ItemDragEventArgs) Handles TreeView1.ItemDrag
  28.         DoDragDrop(e.Item, DragDropEffects.Move)
  29.     End Sub
  30.  
  31.     Private Sub TreeView2_DragDrop(sender As Object, e As DragEventArgs) Handles TreeView2.DragDrop
  32.         Dim NewNode As TreeNode
  33.  
  34.         If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", False) Then
  35.             Dim pt As Point
  36.             Dim DestinationNode As TreeNode
  37.             pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
  38.             DestinationNode = CType(sender, TreeView).GetNodeAt(pt)
  39.             NewNode = CType(e.Data.GetData("System.Windows.Form.TreeNode"), TreeNode)
  40.  
  41.             If Not DestinationNode.TreeView Is NewNode.TreeView Then
  42.                 DestinationNode.Nodes.Add(NewNode.Clone)
  43.                 DestinationNode.Expand()
  44.                 NewNode.Remove()
  45.             End If
  46.         End If
  47.     End Sub
  48.  
  49.     Private Sub TreeView2_DragEnter(sender As Object, e As DragEventArgs) Handles TreeView2.DragEnter
  50.         e.Effect = DragDropEffects.Move
  51.     End Sub
  52. End Class



allego immagine con la variabile nothing



Goodman85 ha allegato un file: Immagine.png (56331 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Thejuster il 23/10/2017 alle 10:00
PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 10:10
Lunedė, 23/10/2017
Non comprendo molto bene il vb.net

Ma i problemi possono essere diversi.

Codice sorgente - presumibilmente C# / VB.NET

  1. Dim NewNode As TreeNode



Per questo ti avevo chiesto di inserire un breakpoint al punto in cui andavi ad eseguire questa operazione.


Sei sicuro che si sta trascinando un Nodo e non un NodeItem?

Inserisci un breakpoint qui


DoDragDrop(e.Item, DragDropEffects.Move)

controlla e.Item di cosa si tratta e cosa stai trascinando prima di convertire l'elemento
in quello che credi possa essere.


Da quel che vedo posso solo dedurre che

Codice sorgente - presumibilmente Plain Text

  1. pt = CType(sender, TreeView).PointToClient(New Point(e.X, e.Y))
  2.  DestinationNode = CType(sender, TreeView).GetNodeAt(pt)




uno di questi due valori sia vuoto.
O non esattamente che sia un treeview.


Ti consiglio di dare uno sguardo a questo tutorial scritto da TheDarkJuster.
Visto che pochi conoscono l'esistenza di questo tool fondamentale per un programmatore.

http://www.pierotofy.it/pages/guide_tutorials/CPlusPlus/Co ...






https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote