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 - DragDrop
Forum - C# / VB.NET - DragDrop

Avatar
sergio58 (Normal User)
Rookie


Messaggi: 38
Iscritto: 05/08/2008

Segnala al moderatore
Postato alle 20:25
Lunedì, 24/11/2008
Di nuovo salve a tutti,dopo aver ricopiato il codice per il DragDrop (in un sito a caso), l'ho modificato per adattarlo ad una Listview.Il problema è che dopo aver selezionato la riga da inserire nel TextBox,in caso di riga non valida, tutti gli elementi della listview vengono selezionati.
Questo è il codice:
Codice sorgente - presumibilmente VB.NET

  1. Private Sub lstPdeiC_Cee_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lstPdeiC_Cee.MouseDown
  2.         Dim I As Integer
  3.         Dim intElementoSelezionato As Integer
  4.  
  5.  
  6.         If lstPdeiC_Cee.Items.Count = 0 Then
  7.             Exit Sub 'la lista è vuota    
  8.         End If
  9.  
  10.         For I = 0 To lstPdeiC_Cee.Items.Count - 1
  11.             If lstPdeiC_Cee.Items(I).Selected = True Then
  12.                 intElementoSelezionato = I
  13.                 mintRecord = CInt(lstPdeiC_Cee.Items(I).SubItems(2).Text)
  14.                 If mintRecord = 0 Then
  15.                     MessageBox.Show("Non è stato selezionato un conto", "CONTO NON VALIDO", MessageBoxButtons.OK, MessageBoxIcon.Information)
  16.                     lstPdeiC_Cee.Items(I).Selected = False
  17.                     Exit Sub
  18.                 End If
  19.                 Exit For
  20.             End If
  21.         Next
  22.  
  23.         lstPdeiC_Cee.DoDragDrop(lstPdeiC_Cee.Items(intElementoSelezionato).Text, DragDropEffects.Copy)


il codice che riguarda le caselle di testo
Codice sorgente - presumibilmente VB.NET

  1. Private Sub txtCeeAvere_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles txtCeeAvere.DragDrop
  2.         'Ottiene i dati di tipo string presenti in memoria
  3.         Dim S As String = e.Data.GetData(GetType(String))
  4.        
  5.         'Imposta il testo della seconda textbox uguale a quello della prima
  6.         txtCeeAvere.Text = S
  7.         txtCeeAvere.Tag = mintRecord
  8.  
  9.     End Sub


Codice sorgente - presumibilmente VB.NET

  1. Private Sub txtCeeAvere_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles txtCeeAvere.DragEnter
  2.         If e.Data.GetDataPresent(GetType(String)) Then
  3.             'Continua a copiare
  4.             e.Effect = DragDropEffects.Copy
  5.         Else
  6.             'Altrimenti annulla l'azione
  7.             e.Effect = DragDropEffects.None
  8.         End If
  9.  
  10.     End Sub
  11. Grazie a tutti in naticipo


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:00
Martedì, 25/11/2008
Selezionati nel senso di evidenziati in blu? Puoi sempre attivare la proprietà HideSelection, per non mantenere la seleziona quando il controllo perde il focus.

PM Quote