|
分類:[VB.NET/VB2005 以降]
ListBoxにクラスをaddすると、ToString()が表示に使われるとわかりましたが その表示を更新させる方法がわかりません。。。
Class testclass public name as String Public Overrides Function ToString() As String Return name End Function End Class
そこで↓こんなふうにTextBoxの内容をセットします。
Sub Button1Click(sender As Object, e As EventArgs) Dim a As New testclass a.name = textBox1.Text listBox1.Items.Add(a) End Sub
しかし、これを更新したいのですが、上手くできないのです。。。 ↓インデックス0を更新してます。
Sub Button3Click(sender As Object, e As EventArgs) Dim c As testclass = listBox1.Items(0) c.name = textBox1.Text End Sub
上手く更新できていないのかと、 ↓こんな感じで確認してみるとちゃんとアップデートできていることが確認できます。
Sub ListBox1SelectedIndexChanged(sender As Object, e As EventArgs) Dim b As testclass = listBox1.SelectedItem Debug.Print( b.name ) End Sub
で、refreshしたらどうかと思い
Sub Button4Click(sender As Object, e As EventArgs) listBox1.Refresh End Sub
としてみても全く変化せず・・・
最後に、ええーーー、と思ったのですが、このRefreshをCheckedListBoxでやるとちゃんと表示が更新されました・・・
ListBoxの表示を更新させるにはどうしたらよいのでしょうか・・・
|