C #: ошибка в ComboBox, когда элементы UserControls? - PullRequest
1 голос
/ 27 июля 2011


Я добавляю объекты из классов, производных от UserControl, в элемент управления ComboBox.Это действительно полезно, так как я могу получить доступ к необходимому элементу управления прямо из выпадающего списка.
Все это прекрасно работает, КРОМЕ того, что все записи ComboBox являются пустыми строками (производные пользовательские элементы управления за ним полностью доступны с помощью selectedItem) ...
ComboBox использует DropDownList в качестве стиля раскрывающегося списка, но его изменение не исправляет.

Минимальный рабочий пример с отображением пустых строк:

public class TestControl : UserControl {
    public override string toString(){
        return "Example";
    }
}

...
combobox.Items.Add(new TestControl());
...

Когда я вызываю

combobox.Items.Add(new TestControl().ToString());

напрямую, запись «Пример».

Это ошибка в элементе управления ComboBox или я что-то не так делаю?Спасибо

1 Ответ

3 голосов
/ 27 июля 2011

Странно, это должно работать.Другой альтернативой может быть присвоение свойству DisplayMember поля со списком свойству TestControl:

Как правило, представлением объекта в ComboBox является строка, возвращаемая методом ToString этого объекта.Если вы хотите, чтобы вместо этого отображался элемент объекта, выберите элемент, который будет отображаться, задав для свойства DisplayMember имя соответствующего элемента.

http://msdn.microsoft.com/en-us/library/system.windows.forms.combobox.items.aspx (враздел замечаний)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...