2016-05-27 1 views
1

私はSystem.Collections.Specialized.StringCollectionとしてMySettings(USR1、USR2、Usr3、Usr4)に4つのオブジェクトを設定しました。My.Settingsデータを削除する方法

私はそれにこの方法を値を与える(とそれが動作する):

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 

私は何もレコードと設定されたオブジェクトを削除しようとすると、私は

これは何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 

しかし、私は決して等しいとは見当たりません。
私は設定から​​値を取得し、テキストボックスにそれらを置くしようと試みました。だから私は、テキストボックスの値は私の設定と等しいが、私のコードはそれを認識しないと確信しています。
どこが間違っていますか?
別の方法がありますか?

+1

「等しい」は、あなたのためにコレクションの各要素をチェックしません。コレクションは参照オブジェクトなので、同じオブジェクトであるかどうかをテストします。彼らは決してなりません。あなたは何かのリストにリストを使用して(ユーザーの)、それをシリアル化するのではなく(あなたのヒントは、常に便利です)、私はない素晴らしいコード(オブジェクトに文字列をループ解決してきたデータベースとして – Plutonix

+0

@Plutonix感謝を設定を使用しようとしたほうが良いと思いますしかし働く)PS私はoption strict;を使い始めました。 – genespos

答えて

0

それは簡単なコマンドです。

My.Settings.Usr1.Clear() 
+0

しかし、私はすべての設定をクリアします。そうじゃない? – genespos

+0

はい、個々のものをクリアするために操作できます。 – sbowde4

+0

しかし、私はそれを行うことができません! :( – genespos

関連する問題