2009-09-03 17 views
1

我有一个.net winforms列表框,我用.Add()添加了项目。我更改了列表中的一个对象,这样它的ToString()方法现在会返回一个不同的值,但该项目的显示值不会更新。我需要调用什么来告诉ListBox重新读取ToString值?如何使ListBox更改项目的文本?

回答

3

由于您手动添加了项目,您需要清除列表框项目,然后重新添加它们。

当您使用.ToString()添加项目时,列表框中只有一个字符串本身的副本 - 它无法知道项目已更改,或者它甚至基于项目。你必须自己处理。

4

如果您将相同的对象引用重新分配给相同的列表框项目,则列表框将刷新其显示值。例如:

Thingy thing = this.listBox1.Items[0]; 
thing.DoSomethingThatChangesToStringReturnValue(); 

this.listBox1.Items[0] = thing; 
相关问题