EDIT2:あなたはあなたの論理(あなたの人々、日付)をあなたのプレゼンテーション(あなたがリストボックスに入れることによってユーザーに見せているもの)から分離する必要があります。常に避けるべきことは、何かを表示し(たとえば、人物リストを表示する)、それを読み返して、それを理解しようとすることです。
Module MyForm
' Keep our dates & people in this dictionary
' Because it's a SortedDictionary, it'll keep them sorted by key
' key, value
Public personDictionary As New SortedDictionary(Of DateTime, Person)
Public Sub New()
InitializeComponent()
' Call CreatePeople() to fill our dictionary when the form is made
CreatePeople()
' Then call FillListBox() to fill our listbox from that dictionary
FillListBox()
End Sub
Private Sub CreatePeople()
' Make your persons and dates here
Dim a = New Person(...)
Dim dateA = New DateTime(2012,2,3)
' Keep them in our internal dictionary
' .Add(..) takes our key (a DateTime) and a value (a Person)
personDictionary.Add(dateA, a)
End Sub
Private Sub FillListBox()
lstFDisplay.Clear()
' Here we do something 'For Each' item in the dictionary
' The dictionary is filled with 'pairs' of key|value (DateTime|Person)
For Each pair In personDictionary
DateTime date = pair.Key
Person person = pair.Value
'Use this data to add items to our UI
lstFDisplay.Items.Add("Name: "&person.Name
lstFDisplay.Items.Add("Address: "&person.Address
lstFDisplay.Items.Add(person.Name&" registered on "&date)
Next
End Sub
人を追加または削除する場合は、辞書から、.Add(..)
または辞書からもう一度.Remove(..)
呼び出して、UIを更新します。FillListBox()
毎回リストボックスから値を再読み込みするのではなく、コード自体に値を保持することで、その情報の処理方法をより細かく制御できます。