2016-05-27 5 views
1

Ich habe 4 Objekte in MySettings (Usr1, Usr2, Usr3, Usr4) als System.Collections.Specialized.StringCollection gesetzt.Wie My.Settings Daten zu entfernen

Ich gebe Werte, um es auf diese Weise (und es funktioniert):

For x As Integer = 1 To 4 
    If My.Settings.Item("Usr" & x.ToString) Is Nothing Then 
     My.Settings.Item("Usr" & x.ToString) = New System.Collections.Specialized.StringCollection _ 
      From {Me.TBox_Name.Text, _ 
        Me.Tbox_Surname.Text, _ 
        Me.TBox_City.Text, _ 
        Me.CBox_Age.Text} 
     My.Settings.Save() 
     Saved = True 
     Exit For 
    End If 
Next 

Wenn ich versuche, Aufzeichnungen zu entfernen und setzen Objekt nichts, was ich nicht

Dies ist, was bieten kann I'v tryed:

Dim ToDelete = New System.Collections.Specialized.StringCollection _ 
      From {Me.TBox_Name.Text, _ 
        Me.Tbox_Surname.Text, _ 
        Me.TBox_City.Text, _ 
        Me.CBox_Age.Text} 
If Not My.Settings.Usr1 Is Nothing AndAlso My.Settings.Usr1.Equals(ToDelete) Then 
    My.Settings.Usr1 = Nothing 
End If 
If Not My.Settings.Usr2 Is Nothing AndAlso My.Settings.Usr2.Equals(ToDelete) Then 
    My.Settings.Usr2 = Nothing 
End If 
If Not My.Settings.Usr3 Is Nothing AndAlso My.Settings.Usr3.Equals(ToDelete) Then 
    My.Settings.Usr3 = Nothing 
End If 
If Not My.Settings.Usr4 Is Nothing AndAlso My.Settings.Usr4.Equals(ToDelete) Then 
    My.Settings.Usr4 = Nothing 
End If 

Aber ich finde nie gleich: nichts passt.
Ich habe versucht, Werte von Einstellungen zu bekommen und sie in Textfelder zu setzen. Ich bin mir sicher, dass die Werte in den Textfeldern meiner Einstellung entsprechen, aber mein Code erkennt sie nicht.
Wo liege ich falsch?
Gibt es einen anderen Weg, es zu tun?

+1

'Equals' überprüft nicht jedes Element in der Sammlung für Sie. Die Auflistung ist ein Referenzobjekt und testet, ob es sich um dasselbe Objekt handelt. sie werden es nie sein. Sie sollten besser eine Liste (des Benutzers) verwenden und serialisieren, anstatt zu versuchen, Einstellungen als Datenbank zu verwenden. – Plutonix

+0

@Plutonix Danke (Ihre Hinweise sind immer nützlich) Ich habe das Schleifen von Strings in Objekte gelöst (kein großartiger Code) aber funktioniert) PS Ich benutze die Option strict;). – genespos

Antwort

0

Es ist ein einfacher Befehl.

My.Settings.Usr1.Clear() 
+0

Aber so werde ich alle Einstellungen löschen. Ist das nicht so? – genespos

+0

Ja, aber Sie können es manipulieren, um jeden einzelnen zu löschen. – sbowde4

+0

Aber ich kann das nicht! :( – genespos