Oppure

Loading
30/04/09 21:59
nabbopazzo
Salve a tutti!
Come da titolo ho un problema con le impostazioni di un applicazione in vb 2008.
Andando al dunque: quando dalle proprietà del progetto vado su impostazioni e creo una nuova impostazione di tipo stringcollection (in quanto mi serve un elenco di stringhe da usare come items in un combobox), poi quando provo a leggere o scrivere da questa impostazione ricevo un errore di NullReferenceException (Object reference not set to an instance of an object).
Ho varie prove ma nnt da fare. Qualcuno che ha avuto lo stesso problema? PS:uso Windows 7, può essere lui il problema? Vi ringrazio in anticipo per l'attenzione.
aaa
01/05/09 7:04
theprogrammer
Il codice ?
aaa
01/05/09 8:06
Il Totem
L'oggetto non è inizializzato. Forse in My.Settings ti sei dimenticato di dargli un valore di default; oppure non hai salvato i Settings una volta uscito dall'applicazione. Se la proprietà non è a sola scrittura, la imposti assegnandole una nuova istanza dell'oggetto StringCollection.
aaa
01/05/09 8:26
Postato originariamente da Il Totem:

L'oggetto non è inizializzato. Forse in My.Settings ti sei dimenticato di dargli un valore di default; oppure non hai salvato i Settings una volta uscito dall'applicazione. Se la proprietà non è a sola scrittura, la imposti assegnandole una nuova istanza dell'oggetto StringCollection.

Concordo...
01/05/09 9:02
nabbopazzo
Non posso creare un'istanza dell'oggetto perchè è una proprietà dello spazio nomi "My.Settings" e nn posso assegnargli un valore di default in quanto è una collezione e poi ho la necessità di nn assegnargliene uno. Alla fine ho risolto utilizzando una singola stringa dividendo quello che mi serve col vbcrlf e poi assegnandola a una textbox uno l'array lines così ho di nuovo un array con tutte le righe. Però è un mistero.......

EDIT
Sono riuscito! Bastava che la prima volta che utilizzo quella impostazione la imposto come istanza di stringcollection, così per esempio:

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            My.Settings.p.Count.ToString()
        Catch ex As NullReferenceException
            My.Settings.p = New System.Collections.Specialized.StringCollection
        End Try
    End Sub
Ultima modifica effettuata da nabbopazzo 01/05/09 9:23
aaa
02/05/09 8:41
Il Totem
Ossia come ti avevo detto io :rotfl:
aaa