c# - ComboBox 不调用 MyClass.ToString()

标签 c# .net

我有以下代码:

public partial class Form1 : Form
{
    public BindingList<Class> List = new BindingList<Class>();

    public Form1()
    {
        InitializeComponent();
        List.Add(new Class());
        comboBox1.DataSource = List;
    }
}

public class Class : Dictionary<string, string>
{
    public override string ToString()
    {
        return "Class";
    }
}

问题在于组合框显示文本“(Collection)”而不是“Class”。每当我删除 Dictionary<string, string>作为 Class 的祖先,代码显示了我想要的“类”。即使当我从我自己编写的另一个基类派生它时,它也可以正常工作。这当然不是真正的程序,而是孤立的问题。那么我是否遗漏了一些东西,或者除了声明 Dictionary<string, string> 之外我别无选择领域 Class而不是子类化它? (哦,顺便说一句,我已经尝试在 ToString 函数中添加断点,但它没有被调用。)

最佳答案

你可以试试这个:

comboBox1.FormattingEnabled = false;

我已经尝试过,现在组合框显示文本“Class”而不是“(Collection)”。

关于c# - ComboBox 不调用 MyClass.ToString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3322109/

相关文章:

c# - MSMQ 接收事务 - 回滚不使消息再次可用

c# - 如何从 C# 中使用 STARTUPINFOEX 调用 CreateProcess() 并重新设置子进程的父级

c# - ERR_TOO_MANY_REDIRECTS ASP.NET C#超过100次重定向

c# - 用于解析重复组的正则表达式

c# - 如何 stub 具体类的 ReadOnly 属性

c# - 默认 SynchronizationContext 与默认 TaskScheduler

c# - Linq 实体,多对多和动态 where 子句

c# - 比较日期时间得到不同的结果

c# - Azure 服务总线重试策略不会改变行为

c# - 将第一个数字替换为一个字节中的第二个数字