Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    problema ricerca vb.net

    salve, ho questo codice per ricercare una parola in ogni cella di una datagrid... ma mi da questo errore:"Index non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme. Nome parametro: index"

    codice:
    Dim righe As Integer
            Dim colonne As Integer
    
            righe = frmAgenda.dgvTabella.RowCount
            colonne = frmAgenda.dgvTabella.ColumnCount
    
            Dim riga As Integer
            Dim colonna As Integer
            Dim parola As String
    
            'controlla ogni cella
            For riga = 0 To righe - 1   'segui fino a righe -1 (tutte le righe della tabella vengono controllate)
                For colonna = 0 To colonna = 0
                    parola = frmAgenda.dgvTabella.Item(riga, colonna).Value
                   
                    If parola = txtRicerca.Text Then
                        frmAgenda.dgvTabella.Item(riga, colonna).Selected = True
                        If frmAgenda.dgvTabella.Item(0, 0).Value.ToString = parola Then
                            frmAgenda.dgvTabella.Item(0, 0).Selected = True
                        Else
                            frmAgenda.dgvTabella.Item(0, 0).Selected = False
                        End If
                    Else
                        'MsgBox("Nessun valore corrispondente al dato immesso è stato trovato!", MsgBoxStyle.Exclamation, "Nessun valore trovato!")
                    End If
                Next
            Next
    
        End Sub

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Non ho ben capito se trova la parola ti deve selezionare la cella? (per intenderci se trova 4 corrispondenze ti selezionale 4 celle?)

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Questo dovrebbe cercare la tua parola e selezionare le celle che la contengono:

    codice:
        Private Sub selezionaCelleRicerca(ByVal mioDGW As DataGridView, ByVal mioTesto As String)
            'Creo un contatore delle occorrenze rilevate
            Dim contatore As Integer = 0
            'Ciclo su ogni riga della dataGridView
            For Each riga As DataGridViewRow In mioDGW.Rows
                'ciclo su ogni colonna della riga
                For Each cella As DataGridViewColumn In mioDGW.Columns
                    'Se il valore della cella corrisponde...
                    If riga.Cells(cella.Index).Value = mioTesto Then
                        '...seleziono la cella
                        riga.Cells(cella.Index).Selected = True
                        'incremento il contatore
                        contatore += 1
                    End If
                Next
            Next
            MsgBox("Risultati totali trovati:" & contatore, MsgBoxStyle.Information, "Ricerca Terminata")
        End Sub
    Per richiamare la sub basta che al click del tuo bottone usi una semplice chiamata passando i parametri che ti servono:

    ES:
    codice:
    selezionaCelleRicerca(nomeDelTuoDatGrid, "testo da cercare in formato stringa")
    Non l'ho provato perchè non ho l'ambiente di sviluppo a portata di mano adesso quindi potrebbero esserci degli errori!

    CIAO!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758

    Re: problema ricerca vb.net

    Il codice sembra più VB6 che VB.Net.
    Comunque questa riga
    Originariamente inviato da inviasubito
    codice:
                For colonna = 0 To colonna = 0
    è evidentemente sbagliata.

  5. #5
    Grazie per le risposte e scusate per il ritardo...

    devo ancora testare il codice, ma poi vi farò sapere...

    per "Grumpy" giusto

  6. #6
    codice testato e funzionante, grazie.

  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.