Я тоже сталкивался с этим (и еще одно спасибо, Манджи!).
У меня было что-то вроде этого:
public override string ToString()
{
return MessageText;
}
Где MessageText был текстовым полем среди нескольких других, и он работал нормально. Позже я изменил это на это
public override string ToString()
{
return string.Concat("[", MessageTime.ToString("yyyy-MM-dd HH:mm:ss.fffff"), "] ", MessageText);
}
И он все равно будет возвращать только содержимое поля MessageText (время вытягивания волос). Интересно, что контекстное меню в ListBox, которое я настроил для копирования выбранных элементов в буфер обмена, использовало полное переопределение ToString.
Лично я считаю, что свойство FormattingEnabled должно иметь значение по умолчанию false, а не true, я нахожу, что меня часто ловит IDE (или параметры управления), пытающиеся быть умными.
/// Правка: опечатка (не забывайте печатать локтями!