View Full Version : [VB.NET] NullReferenceExeption
birmarco
28-11-2010, 21:24
Ciao a tutti, non sono molto esperto di VB.net ma sto realizzando un piccolo editor di testi rtf a scopo sperimentale... sono di fronte ad un piccolo problema che non riesco a risolvere: ho una richtextbox in cui se seleziono del testo automaticamente mi dice il nome del font... il problema nasce quando evidenzio due font diversi... vb in runtime mi da NullReferenceExeption. Il codice è il seguente:
Private Sub txtBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBox.SelectionChanged
Dim valore As String
valore = CStr(txtBox.SelectionFont.FontFamily.Name)
frmOutputConsole.outputList.Items.Add(valore)
For i As Integer = 0 To (fontBox.Items.Count - 1)
If fontBox.Items.Item(i).ToString = valore Then
fontBox.Text = valore
Exit For
End If
Next
End Sub
fontBox è una comboBox
txtBox è una richtextbox
Grazie a tutti! :)
EDIT. .NET Framework 4 e VS 2010 Pro
Ciao selezionando due font diversi se non sbaglio ti genera errore su questa riga:
valore = CStr(txtBox.SelectionFont.FontFamily.Name)
perchè avendo due font diversi non hai un nome del font quindi genera errore dovresti utilizzare un Try Catch per esempio:
Private Sub txtBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBox.SelectionChanged
Dim valore As String
Try
valore = CStr(txtBox.SelectionFont.FontFamily.Name)
Catch ex As Exception
valore = "Indefinito"
End Try
frmOutputConsole.outputList.Items.Add(valore)
For i As Integer = 0 To (fontBox.Items.Count - 1)
If fontBox.Items.Item(i).ToString = valore Then
fontBox.Text = valore
Exit For
End If
Next
End Sub
birmarco
28-11-2010, 21:55
Ciao selezionando due font diversi se non sbaglio ti genera errore su questa riga:
valore = CStr(txtBox.SelectionFont.FontFamily.Name)
perchè avendo due font diversi non hai un nome del font quindi genera errore dovresti utilizzare un Try Catch per esempio:
Private Sub txtBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBox.SelectionChanged
Dim valore As String
Try
valore = CStr(txtBox.SelectionFont.FontFamily.Name)
Catch ex As Exception
valore = "Indefinito"
End Try
frmOutputConsole.outputList.Items.Add(valore)
For i As Integer = 0 To (fontBox.Items.Count - 1)
If fontBox.Items.Item(i).ToString = valore Then
fontBox.Text = valore
Exit For
End If
Next
End Sub
Avevo già provat ad usare try e catch ma l'avevo fatto nel modo sbagliato... con il tuo funziona! GRAZIE MILLE! :)
Se voglio andare oltre... e applicare anche il font che o selezionato al testo della combo box posso? Ovviemente se seleziono un solo font... :)
Avevo già provat ad usare try e catch ma l'avevo fatto nel modo sbagliato... con il tuo funziona! GRAZIE MILLE! :)
Se voglio andare oltre... e applicare anche il font che o selezionato al testo della combo box posso? Ovviemente se seleziono un solo font... :)
certo che puoi, anche se ne selezioni due poi nella combobox selezioni il font e quei due font diventano quello che hai selezionato più semplicemente come tutte le applicazioni di testo come word ecc...
birmarco
29-11-2010, 14:29
certo che puoi, anche se ne selezioni due poi nella combobox selezioni il font e quei due font diventano quello che hai selezionato più semplicemente come tutte le applicazioni di testo come word ecc...
forse non ci siamo capiti molto bene! :) io intendevo applicare il font al testo della combo box... esempio: seleziono una parola in times new roman e il testo della combo box diventa "times new roman" in stile times new roman. :)
comunque puoi farlo ugualmente utilizzando try catch oppure confrontando i font :D
birmarco
29-11-2010, 19:20
comunque puoi farlo ugualmente utilizzando try catch oppure confrontando i font :D
Non riesco a trovare il comando... :(
ComboBox.SelectedText.???
Non trovo nessun .Font da qualche parte... :confused:
Non riesco a trovare il comando... :(
ComboBox.SelectedText.???
Non trovo nessun .Font da qualche parte... :confused:
mi sembra strano dovresti avere:
ComboBox1.Font
anche
ComboBox1.Font.FontFamily
birmarco
29-11-2010, 21:43
mi sembra strano dovresti avere:
ComboBox1.Font
anche
ComboBox1.Font.FontFamily
Hai ragione! :) Grazie! =)
Non esiste anche un metodo specifico per ogni item? perchè sarebbe carino ricreare una selezione font in stile word 2007... ;) o devo creare un controllo personalizzato? :)
Hai ragione! :) Grazie! =)
Non esiste anche un metodo specifico per ogni item? perchè sarebbe carino ricreare una selezione font in stile word 2007... ;) o devo creare un controllo personalizzato? :)
Mi dispiace ma non ho avuto mai il bisogno di utilizzare questo tipo di opzione e che io sappia non è previsto un metodo specifico per ogni item
birmarco
30-11-2010, 10:19
Mi dispiace ma non ho avuto mai il bisogno di utilizzare questo tipo di opzione e che io sappia non è previsto un metodo specifico per ogni item
non ti preoccupare! Grazie lo stesso dell'attenzione! :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.