none
[VB2010] Deselezionare la riga di default di un datagridview. RRS feed

  • Domanda

  • Buonasera, avrei bisogno di un aiutino, ho fatto questo listato:

    Dim righelette As Integer
            Dim eliminaCliente As String = Me.lblIDCliente.Text
            righelette = (DataGridView1.RowCount) - 1
            For n = 0 To righelette
                If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then
    
    
    
                    DataGridView1.Rows(n).Cells(0).Selected = True
                End If
            Next

    quando riconosce il contenuto nella prima cella di ogni riga il dato in "eliminaCliente" mi seleziona la riga interessata, il problema è che mi resta selezionata anche la riga di default....la prima in alto...la zero.

    Mi aiutate?.....non capisco come fare a deselezionarla.......

    Grazie Guido

    lunedì 24 giugno 2013 20:25

Risposte

  • Ciao Guido,

    C'è qualcuno che può darmi un aiuto!!!! pensavo che dal momento che 

     If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then

    mi identifica la corrispondenza della prima cella e mi va a selezionare questa trovata

    DataGridView1.Rows(n).Cells(0).Selected = True

    vi fosse solo questa selezionata, invece mi rimane in selezione anche la prima riga...quella di default.....

    Aiutoooooo..... :-(

    Guido

    e sufficiente impostare la proprietà Multiselect che trovi nelle proprietà del controllo DataGrid su False.

    Vorrei aggiungere un osservazione , sarebbe meglio evitare di scrivere più volte nello stesso thread "aiuto", uno dei rischi e che pochi utenti potrebbero rispondere ,in quanto siamo all'interno di un Forum pubblico , di discussione e non di consulenza :)  come riportato nel  manifesto , e chi risponde lo fa esclusivamente nel tempo libero e in maniera del tutto volontaria , e potrebbero passare anche giorni prima che qualcuno risponda al thread , per cui bisogna anche avere un po' di pazienza :) , questo e semplicemente un mio personalissimo parere ed opinione.

    Cordialmente.

    Ciao, buona giornata :)



    • Modificato Carmelo La Monica martedì 25 giugno 2013 10:53 Corretto Ortografia e aggiunto maggiori dettagli al post.
    • Contrassegnato come risposta Guido.G martedì 25 giugno 2013 16:36
    martedì 25 giugno 2013 10:51

Tutte le risposte

  • C'è qualcuno che può darmi un aiuto!!!! pensavo che dal momento che 

     If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then

    mi identifica la corrispondenza della prima cella e mi va a selezionare questa trovata

    DataGridView1.Rows(n).Cells(0).Selected = True

    vi fosse solo questa selezionata, invece mi rimane in selezione anche la prima riga...quella di default.....

    Aiutoooooo..... :-(

    Guido

    martedì 25 giugno 2013 10:29
  • Ciao Guido,

    C'è qualcuno che può darmi un aiuto!!!! pensavo che dal momento che 

     If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then

    mi identifica la corrispondenza della prima cella e mi va a selezionare questa trovata

    DataGridView1.Rows(n).Cells(0).Selected = True

    vi fosse solo questa selezionata, invece mi rimane in selezione anche la prima riga...quella di default.....

    Aiutoooooo..... :-(

    Guido

    e sufficiente impostare la proprietà Multiselect che trovi nelle proprietà del controllo DataGrid su False.

    Vorrei aggiungere un osservazione , sarebbe meglio evitare di scrivere più volte nello stesso thread "aiuto", uno dei rischi e che pochi utenti potrebbero rispondere ,in quanto siamo all'interno di un Forum pubblico , di discussione e non di consulenza :)  come riportato nel  manifesto , e chi risponde lo fa esclusivamente nel tempo libero e in maniera del tutto volontaria , e potrebbero passare anche giorni prima che qualcuno risponda al thread , per cui bisogna anche avere un po' di pazienza :) , questo e semplicemente un mio personalissimo parere ed opinione.

    Cordialmente.

    Ciao, buona giornata :)



    • Modificato Carmelo La Monica martedì 25 giugno 2013 10:53 Corretto Ortografia e aggiunto maggiori dettagli al post.
    • Contrassegnato come risposta Guido.G martedì 25 giugno 2013 16:36
    martedì 25 giugno 2013 10:51
  • Ciao Carmelo, innanzitutto volevo scusarmi con te e tutti quelli che fanno parte del Forum, no volevo certo dare l'impressione di pretendere....era solo una nota di disperazione personale :-), sono comunque d'accordo con te e ti posso assicurare che non succederà più.

    Tornando al problema, ho fatto quello che mi hai suggerito, ma senza risultato, ho fatto un controllo di tutto ciò che ho scritto e non ho dichiarazioni di multiselezione nel listato, ho provato anche ad aggiungere il comando come da listato....ma non cambia nulla.

    rimane la prima riga selezionata con a sx il triangolino che indica la selezione (default) e l'altra riga che riconosce e quindi seleziona.....

     DataGridView1.MultiSelect = False
            Dim righelette As Integer
            Dim eliminaCliente As String = Me.lblIDCliente.Text
            righelette = (DataGridView1.RowCount) - 1
            For n = 0 To righelette
                If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then
                    DataGridView1.Rows(n).Cells(0).Selected = True
                    Exit For
                End If
            Next
    Guido.
    martedì 25 giugno 2013 14:03
  • Ciao Guido,

    Ciao Carmelo, innanzitutto volevo scusarmi con te e tutti quelli che fanno parte del Forum, no volevo certo dare l'impressione di pretendere....era solo una nota di disperazione personale :-), sono comunque d'accordo con te e ti posso assicurare che non succederà più.

    Tornando al problema, ho fatto quello che mi hai suggerito, ma senza risultato, ho fatto un controllo di tutto ciò che ho scritto e non ho dichiarazioni di multiselezione nel listato, ho provato anche ad aggiungere il comando come da listato....ma non cambia nulla.

    rimane la prima riga selezionata con a sx il triangolino che indica la selezione (default) e l'altra riga che riconosce e quindi seleziona.....

     DataGridView1.MultiSelect = False
            Dim righelette As Integer
            Dim eliminaCliente As String = Me.lblIDCliente.Text
            righelette = (DataGridView1.RowCount) - 1
            For n = 0 To righelette
                If DataGridView1.Rows(n).Cells(0).Value = eliminaCliente Then
                    DataGridView1.Rows(n).Cells(0).Selected = True
                    Exit For
                End If
            Next
    Guido.

    hai modificato in designer la proprietà Multiselect del controllo DataGrid su False ?  

    Ciao.


    martedì 25 giugno 2013 14:22
  • Ma!!...non ci capisco più nulla...si ho messo Multi select da proprietà = False ed anche da listato, ho anche aggiunto una riga per controllare quale era l'impostazione prima del comando IF

    Label5.Text = DataGridView1.MultiSelect

    e mettendo i punti di interruzione, il programma girava tutto ma non si bloccava, ad un certo punto mi ha dato un errore di compilazione nella cartella dove risiede il listato, ho chiuso la finestra e per sicurezza ho salvato tutto il progetto, senza riavviare nulla ho mandato in esecuzione.....ed ora funziona tutto.. 

    non so....

    forse un errore del pc sulla compilazione!!!!

    grazie.

    Guido

    martedì 25 giugno 2013 14:38
  • Ciao Guido,

    Ma!!...non ci capisco più nulla...si ho messo Multi select da proprietà = False ed anche da listato, ho anche aggiunto una riga per controllare quale era l'impostazione prima del comando IF

    Label5.Text = DataGridView1.MultiSelect

    e mettendo i punti di interruzione, il programma girava tutto ma non si bloccava, ad un certo punto mi ha dato un errore di compilazione nella cartella dove risiede il listato, ho chiuso la finestra e per sicurezza ho salvato tutto il progetto, senza riavviare nulla ho mandato in esecuzione.....ed ora funziona tutto.. 

    non so....

    forse un errore del pc sulla compilazione!!!!

    grazie.

    Guido

    prego.

    Ciao.


    martedì 25 giugno 2013 14:54