CellValueChanged:errore Riferimento a un oggetto

di il
3 risposte

CellValueChanged:errore Riferimento a un oggetto

Ho il seguente codice, che mi restituisce il seguente errore su DGVstraordinari_CellValueChanged:Riferimento a un oggetto non impostato su un'istanza di oggetto.
Se provo con DGVstraordinari_CellClick, funziona.
Posso avere qualche vs. suggerimento?
Grazie.

#Region "datagrid lavori strordinari-13"
    Private Sub TabPage13_Enter(sender As Object, e As EventArgs) Handles TabPage13.Enter
        Me.Lavori_straordinari_ripartizioneTableAdapter.Fill(Me.GESTCONDOMINIODataSet.lavori_straordinari_ripartizione, Val(IDTextBox2.Text))
        Dim totmill, totdovuto, totpagato, totconguaglio As Double
        For Each riga As DataGridViewRow In DGVstraordinari.Rows
            totmill += riga.Cells(5).Value
            totdovuto += riga.Cells(6).Value
            totpagato += IIf(IsDBNull(riga.Cells(7).Value), 0, riga.Cells(7).Value)
            totconguaglio += IIf(IsDBNull(riga.Cells(8).Value), 0, riga.Cells(8).Value)
        Next
        TextBox1.Text = Format(totmill, "n")
        TextBox2.Text = Format(totdovuto, "n")
        TextBox3.Text = Format(totpagato, "n")
        TextBox4.Text = Format(totconguaglio, "n")
    End Sub

    Private Sub ComboBox7_click(sender As Object, e As EventArgs) Handles ComboBox7.Click
        query = "SELECT ID, DESCRIZIONE FROM lavori_straordinari WHERE ID_ANA=" & id_condominio & " AND ANNO=" & id_anno
        cl.cmb(query, sender)
    End Sub
    Private Sub PAGATOTextBox1_TextChanged(sender As Object, e As EventArgs) Handles PAGATOTextBox1.TextChanged
        CONGUAGLIOTextBox.Text = CDbl(DOVUTOTextBox1.Text) - CDbl(PAGATOTextBox1.Text)
    End Sub
    Private Sub DGVstraordinari_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGVstraordinari.CellValueChanged
        DGVstraordinari.Rows(DGVstraordinari.CurrentRow.Index).Cells(8).Value = DGVstraordinari.Rows(DGVstraordinari.CurrentRow.Index).Cells(6).Value - DGVstraordinari.Rows(DGVstraordinari.CurrentRow.Index).Cells(7).Value
    End Sub
#End Region

3 Risposte

  • Re: CellValueChanged:errore Riferimento a un oggetto

    Hai qualcosa a Nothing... Guarda bene il messaggio dell'eccezione quando il codice va in debug perché ti dice cosa è.

    Ad ogni modo, non mi sembra una buona idea cambiare il valore di una cella dentro quell'evento: vai in loop infinito a meno che il valore dell'ottava cella non sia zero.

    Ed non hai nemmeno specificato quando l'evento deve partire: a rigor di logica, dovrebbe innescarsi solo se modifichi il valore della settima o nona colonna:
    Private Sub DGVstraordinari_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DGVstraordinari.CellValueChanged
    If e.ColumnIndex = 6 OrElse e.ColumnIndex = 8 Then        
        DGVstraordinari.CurrentRow.Cells(8).Value = DGVstraordinari.CurrentRow.Cells(6).Value - DGVstraordinari.CurrentRow.Cells(7).Value
    End If
    End Sub
  • Re: CellValueChanged:errore Riferimento a un oggetto

    Come sempre,grazie,Sgrubak.
    Vedrò ora, sulla base delle tue disamine,cosa riuscirò a concludere!...
    Quanti prima (spero!!!) ti farò sapere.
  • Re: CellValueChanged:errore Riferimento a un oggetto

    Ho trovato una nuova soluzione,che funziona.
    Quella oggetto del mio post è troppo complessa per essere risolta sulla base delle mie (scarse) conoscenze.
    (nothing era DGVstraordinari)
    Grazie,Sgrubak.
    Ora, ho un altro problema.Scriverò uno specifico messaggio.
Devi accedere o registrarti per scrivere nel forum
3 risposte