Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110

    [VB.NET] - Inserire dati in datagridviewrow da codice

    Ciao a tutti!
    Dovendo decidere tramite ciclo lo sfondo delle righe della mia dataGridViewRow sto usando questo codice per crearla:

    codice:
    dim miaRiga as new DataGridViewRow
    miaRiga.defaultCellStyle.backColor=mioColore
    miaDataGridView.rows.add(miaRiga)
    Normalmente (non dovendo impostare la proprietà backColor) uso:

    codice:
    miaDataGridView.rows.add("primo valore","secondo Valore", ecc ecc ecc)
    in questo caso come devo comportarmi per inserire i miei valori nelle varie colonne?

    ho provato con set_Value ma non funge.... mi da righe (con lo sfondo giusto) ma vuote....

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    miaDataGridView.Rows(0).Cells(0).Value = "xxxx"
    miaDataGridView.Rows(0).Cells(1).Value = "yyyy"
    miaDataGridView.Rows(0).Cells(2).Value = "zzzz"
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110
    Quote Originariamente inviata da oregon Visualizza il messaggio
    miaDataGridView.Rows(0).Cells(0).Value = "xxxx"
    miaDataGridView.Rows(0).Cells(1).Value = "yyyy"
    miaDataGridView.Rows(0).Cells(2).Value = "zzzz"
    Grazie Oregon! Conosco questa sintassi! Il problema è che io non conosco l'indice della riga dacchè la sto creando in quel momento!

  4. #4

  5. #5
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110
    Quote Originariamente inviata da gibra Visualizza il messaggio
    E secondo te, chi pu� conoscerlo l'indice?
    non ne ho idea! infatti io non pensavo di puntate alla riga subito dopo averla creata tramite indici ma impostando i valori prima di aggiungerla (cos� come faccio con lo sfondo)...
    in quel modo devo conoscere solo gli indici delle colonne e sono salva!

    il problema � che scrivo: miaRiga.setValue("val prima col", "val seconda col") non me le popolazioni....

  6. #6

  7. #7
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110
    Quote Originariamente inviata da gibra Visualizza il messaggio
    How to: Manipulate Rows in the Windows Forms DataGridView Control
    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx


    Gibra grazie per il codice! Però (forse non ho colto io...) non mi sembra che risolva il mio dubbio! Dubbio che a sto punto forse ho spiegato male....

    Io so come inserire dei dati in una riga del datagridview...il mio problema è che voglio manipolare le proprietà della riga in fase di inserimento!

    Ipotizzate di avere 3 record.
    2 contengono dei dati positivi e 1 dei dati negativi...

    Io voglio che nel mio ciclo che popola le righe, la riga con i dati negativi abbia colore rosso di sfondo...
    e vorrei farlo nel ciclo stesso mentre inserisco le righe...
    (se no dovrei riciclare tutta la datagridview e se le righe son molte diventa davvero uno spreco di risorse...)

    Esistendo un oggetto "dataGridViewRow" che può essere manipolato prima di essere passato alla funzione "rows.add()" pensavo nel ciclo di creare tale oggetto, impostarne le proprietà grafiche (in questo caso il back color) a seconda dei dati che contiene e poi inserisci i dati...
    purtroppo lavorando con questo "oggetto" non riesco ad inserirceli...

    Per spiegarmi ancora meglio:

    codice:
    Dim miaRiga As New DataGridViewRow
                    If status = 0 Then
                        miaRiga.DefaultCellStyle.BackColor = Color.DarkRed
                    End If
                    miaRiga.SetValues("mio valore", "mio valore 2", "mio valore 3")
                    dgvMens.Rows.Add(miaRiga)
    ecco ho provato così...

    • la riga la aggiunge
    • il colore è giusto
    • ma le colonne suono vuote

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,110
    ok dopo un po di sbattimento ho risolto:

    Il problema è che la nuova riga non possiede una struttura di celle essendo vergine.

    Quindi basta darle la struttura prendendola dalla dataGridView nella quale la riga andrà inserita.
    Per basta usare:

    codice:
    miaRiga.CreateCells(miaDGV)
    dopo questo passaggio la funzione setValues() della riga funziona benissimo (in modo uguale alla funzione rows.Add della datagridview).

    Grazie lo stesso a tutti

    Spero questo post possa aiutare qualcuno in futuro

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 © 2024 vBulletin Solutions, Inc. All rights reserved.