Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как заполнить комбобокс / 9 сообщений из 9, страница 1 из 1
13.08.2004, 10:06
    #32648037
Andy154
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Доброго времени суток!

Предупреждаю сразу...
Про VB.NET нифига не знаю :-).

В VB существовал элементарный способ загрузки значений в ComboBox с добавлением дополнительной информации...

Код: plaintext
1.
2.
combo1.AddItem ("asdfdas")
combo1.ItemData( 1 ) =  100 

При этом на экране видна только строка, ессно. Но при необходимости можно достать и код...

Как сделать в VB.NET ТО ЖЕ САМОЕ? Никаких ItemData я там не нашел... Может не там искал?

Спасибо.
...
Рейтинг: 0 / 0
13.08.2004, 10:18
    #32648075
sposad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Два способа
Хочешь items.Add, а хочешь выставляй DataSource, ValueMember, DisplayMember
...
Рейтинг: 0 / 0
13.08.2004, 10:20
    #32648082
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
ТО ЖЕ САМОЕ напрямую - получится

можешь показывать в Combo любую коллекцию, реализующую IList или IListSource интерфейсы. (используя DataSource, ValueMember и DiasplayMember)
...
Рейтинг: 0 / 0
13.08.2004, 10:24
    #32648091
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Oops, пропустил "не"

ТО ЖЕ САМОЕ напрямую - НЕ получится
...
Рейтинг: 0 / 0
13.08.2004, 10:49
    #32648169
Andy154
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Спасибо всем!

Изврат, однако, блин...
А я так надеялся, что все станет проще :-)...
...
Рейтинг: 0 / 0
16.08.2004, 11:21
    #32650498
Andy154
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Для тех, кому интересно...

Нашел такой способ...

Предлагаю сразу в FAQ :-)...


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
 ' вот такой класс и все проблемы снимаются :-) 
Public Class cboClass
    Public ItemString As String
    Public ItemData As Long
    Public ItemData2 As Long
    Public ItemData3 As Long
    Public Overrides Function ToString() As String
        ToString = ItemString
    End Function
End Class


...
 ' заполняем... 
        Dim ci As cboClass
        ci = New cboClass()
        ci.ItemData =  1 
        ci.ItemString = "t1"
        ComboBox1.Items.Add(ci)
        ci = New cboClass()
        ci.ItemData =  34 
        ci.ItemString = "t34" 
      ComboBox1.Items.Add(ci)

...
 ' получаем код... 
        Dim co As cboClass
        co = ComboBox1.SelectedItem
        MsgBox(co.ItemData)
...

...
Рейтинг: 0 / 0
16.08.2004, 12:16
    #32650648
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Andy154
Как сделать в VB.NET ТО ЖЕ САМОЕ? Никаких ItemData я там не нашел... Может не там искал?

Вообще ComboBox Items = object и значит могут содержать в себе любые экземпляры пользовательских классов. Название которых может быть более содержательным, например класс Персона (Фамилия, Имя, Отчество, Дата Рождения, ИД ), Справочник лакокрасочных средств (ИД, Наименование) и т.д.
В этом смысле в VB.NET удобнее чем в VB.

Я бы предпочел создать временный DataTable и потом этот DataTable забиндить с ComboBox.
Хотя если это данные из БД, то и создавать вручную такой DataTable не обязательно.
Также при таком подходе от ComboBox можно абстрагироваться и работать через BindingContext.

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
16.08.2004, 14:06
    #32650939
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
2 Sa:
Кстати, по ходу вопрос. Возможно ли подцепить к комбо DataRow() в качестве DataSource? Почему спрашиваю: если лепить всякие фильтры, то метод Select для DataSet возвращает именно DataRow(). Но у меня пока не получилось прицепить его как DataSource к комбо/листбоксу.
...
Рейтинг: 0 / 0
18.08.2004, 08:07
    #32653843
Sa
Sa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как заполнить комбобокс
Возможно ли подцепить к комбо DataRow() в качестве DataSource? Почему спрашиваю: если лепить всякие фильтры, то метод Select для DataSet возвращает именно DataRow()

Используйте вместо метода Select класса DataTable , класс DataView и свойство RowFilter

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как заполнить комбобокс / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]