Problemi con datagridview

di il
5 risposte

Problemi con datagridview

Buongiorno a tutti. Ho bisogno del vostro aiuto.
Devo ricercare sul mio pc tutti i drivers.
Una volta trovati, vengono elencati in una datagridview.
Il problema è che l'ultimo drive viene elencato due volte.
Ho verificato il software e tutti i cicli vengono effettuati correttamente.
La colpa è della dgw, perchè se uso una listbox il problema non si presenta.
(uso la datagridview perchè voglio una rappresentazione grafica, che (per quel che ho capito(!)) non è possibile con la listbox).

Imports System.IO
Public Class Prova
    Private Sub Prova_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        dgv1.Rows.Clear()
        Dim ndisk As Integer = My.Computer.FileSystem.Drives.Count
        Dim InImg As Image
        Dim x As Integer = 0
        Dim cercaDrivers = My.Computer.FileSystem.Drives
        For Each info In cercaDrivers
            Dim unita As New DriveInfo(info.Name)
            Dim tipo As String
            Select Case unita.DriveType
                Case DriveType.CDRom
                    tipo = "CD-ROM"
                    InImg = My.Resources.Resource1.dvd
                Case DriveType.Fixed
                    tipo = "Disco Fisso"
                    InImg = My.Resources.Resource1.FissoWindows
                Case DriveType.Removable
                    tipo = "Rimuovibile"
                    InImg = My.Resources.Resource1.usb
                Case DriveType.Unknown
                    tipo = "Sconosciuto"
                    InImg = My.Resources.Resource1.volume
            End Select
            dgv1.Rows(x).Cells(0).Value = InImg
            dgv1.Rows(x).Cells(1).Value = unita
            dgv1.Rows(x).Cells(2).Value = tipo
            dgv1.Rows.Add(InImg, unita, tipo)
            x += 1
        Next

    End Sub

5 Risposte

  • Re: Problemi con datagridview

    Jan ha scritto:


    La colpa è della dgw, perchè se uso una listbox il problema non si presenta.
    O magari potrebbe essere dovuto al modo in cui utilizzi la DataGridView...

    Jan ha scritto:


    
                dgv1.Rows(x).Cells(0).Value = InImg
                dgv1.Rows(x).Cells(1).Value = unita
                dgv1.Rows(x).Cells(2).Value = tipo
                dgv1.Rows.Add(InImg, unita, tipo)
    
    Osserva il codice sopra: perché stai aggiungendo una riga con i valori ma, prima, li stai anche inserendo di nuovo all'interno delle celle?

    Direi che la Add() dovrebbe bastare, altrimenti stai riscrivendo i valori nella riga già inserita, o peggio coprendo quelli di un altro device inserito appena prima, e poi aggiungi comunque un'altra riga arrivando alla fine "dispari", ossia con la riga duplicata.

    Ciao!
  • Re: Problemi con datagridview

    E per la precisione Drivers e Drives sono cose diverse.

    P.S. un consiglio... se non sai come usare la dgw esegui il codice riga per riga per capire cosa succede.. ti accorgi subito del problema...
  • Re: Problemi con datagridview

    Mi permetto di aggiungere che ti conviene ,in genere, vedere prima di tutto la documentazione di Microsoft https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.datagridview.rows?view=windowsdesktop-7.0 ,
  • Re: Problemi con datagridview

    Grazie Alka.
    Grazie Oregon.
    Ho risolto come suggerito da Alka.
    Spesso ,quando credo di aver capito qualcosa, incorro in brutali errori!!!
  • Re: Problemi con datagridview

    Jan ha scritto:


    Spesso ,quando credo di aver capito qualcosa, incorro in brutali errori!!!
    Quello lo facciamo tutti.
Devi accedere o registrarti per scrivere nel forum
5 risposte