Errore su oggetto non impostato su una istanza di oggetto

di Jan il
4 risposte

Solo ieri ho chiesto aiuto per un problema che avrei dovuto risolvere da solo, ma che Oregon ed Alka -cortesi come sempre- mi hanno poi suggerito.
Oggi, prima di scrivere, ho riflettuto: sono sicuro di non avere conoscenza del problema e quindi sono ancora qui...

Ho questo codice

   Private Sub rtb_SelectionChanged(sender As Object, e As EventArgs) Handles rtb.SelectionChanged
       Dim famiglia As Font = New Font(rtb.SelectionFont.FontFamily, rtb.SelectionFont.Size)
       familyCrt.SelectedItem = famiglia.Name
       Dim index = sizeCrt.FindString(Math.Round(famiglia.Size))
       If index = -1 Then
           MsgBox("errore sulla lettura del font.size")
           index = 1
       End If
       sizeCrt.SelectedIndex = index
       menuApp()
   End Sub

che mi consente non solo di aggiornare immediatamente le combo contenenti famiglia e dimensione del carattere in uso, ma anche di abilitare/disabilitare tasti per l'allineamneto, il grassetto, il corsivo , i rientri,ecc. 
Ora, ho verificato che se seleziono una porzione di testo in siano presenti più di un tipo di carattere , mi va in errore (System.NullReferenceException: 'Riferimento a un oggetto non impostato su un'istanza di oggetto.') sulla riga  : 

 Dim famiglia As Font = New Font(rtb.SelectionFont.FontFamily, rtb.SelectionFont.Size)


Try-catch non risolve il problema e sono ...bloccato.


Un aiutino? Grazie.

PS. perdonatemi, sono vecchio, ma programmare mi piace, anche se ho molto, molto da imparare.

4 Risposte

  • Jan devi studiare le basi prima di scrivere codicr

    Se un oggetto non esiste lo controlli prima

    Probabilmente non eesistertb.SelectionFont quindi prima scrivi

    If rtb.SelectionFont Is Nothing Then Exit Sub

  • Oregon, che dirti? Grazie. Funziona.

    Non capisco però come possa “non esistere” rtb.selectionFont ,che è una funzione (suppongo) di RTB che restituisce il carattere selezionato nella richtextbox.

    L'errore si verificava proprio quando selezionavo del testo e quindi … non capisco.

    Hai ragione tu : devo studiare le basi,altrimenti si cade sempre negli ORRORI!

    Buona serata.

  • Se non selezioni nessun carattere, non può esistere il loro font.

    No?

Devi accedere o registrarti per scrivere nel forum
4 risposte