c# - 覆盖 ToString() 并添加到 ListBox C#

标签 c# .net winforms generics tostring

谁能解释一下:

public class Test : List<int>
{
    public override string ToString()
    {
        return "My ToString";
    }
}

如果我实例化它并将它添加到 Windows Form 上的 ListBox 控件中,它会显示“Collection”而不是“My ToString”。

Test test = new Test();
listBox1.Items.Add(test);

我认为添加到 Items 只会调用我类(class)的 ToString()。以下当然按预期工作

MessageBox.Show(test.ToString());

最佳答案

为此,您必须禁用格式设置:

listBox1.FormattingEnabled = false;

看起来如果启用了格式化,它会做一些魔术,结果并不总是应该的......

关于c# - 覆盖 ToString() 并添加到 ListBox C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5744105/

相关文章:

c# - Couchbase N1QL 结果根据 SELECT 语法改变形状

c# - ArrayList 到 MessageBox C#

c# - 在 C# 中打印 PDF

c# - 如何在 WebBrowser 控件中注入(inject) CSS

c# - 是否有一个 memcmp 等价物用于比较 Mono 中的字节数组?

c# - 从 C# 到 VB.NET 的 Linq 查询

c# - 我可以应用一些代码,例如 catch,如果数据库关闭或无法连接,应用程序不应停止并退出

c# - 如何使用Elasticsearch索引多字段元素

c# - 如何从另一个 WinForm 通过 C# WinForm 查看

c# - 将 WindowState 设置为最大化会导致窗口出现得太早