Combox + Item key

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Combox + Item key

Сообщение FireFenix » 03.05.2009 (Вс) 13:34

Возможно глупая тема...... но у меня возник вопрос - возможно ли в комбобоксе использовать элементы с параметрами имя и ключ, как в listview? т.е. чтобы получилось как у <select> в html, при выборе элемента по текстовому значению, можно было получить его значение + индекс

как вариант - привязать массив и юзать вместе с комбиком...... но хотелось бы использовать только комбик
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Combox + Item key

Сообщение amokr » 05.05.2009 (Вт) 14:28

FireFenix писал(а):Возможно глупая тема...... но у меня возник вопрос - возможно ли в комбобоксе использовать элементы с параметрами имя и ключ, как в listview? т.е. чтобы получилось как у <select> в html, при выборе элемента по текстовому значению, можно было получить его значение + индекс

как вариант - привязать массив и юзать вместе с комбиком...... но хотелось бы использовать только комбик


имхо только массив+комбобокс... практически уверен что комбобокс не может принимать двумерные данные, ни явно ни скрыто...

Кстати а в чем проблема с массивом? код то вообще элементарный:

Код: Выделить всё
        Dim ElementName As String
        Dim ElementIndex As Integer
        ElementName = ComboBox1.SelectedItem
        ElementIndex = AccompanyArray(ComboBox1.SelectedIndex)

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Re: Combox + Item key

Сообщение Ronin » 05.05.2009 (Вт) 14:45

Я, например делаю так:
Код: Выделить всё
    ''' <summary>
    ''' Обобщенная структура для занесения в простые листы, комбобоксы
    ''' </summary>
    ''' <remarks></remarks>
    Public Structure ListItemObject
        Public _ID As Long
        Public _Text As String

        Public Property ID() As Long
            Get
                Return _ID
            End Get
            Set(ByVal value As Long)
                _ID = value
            End Set
        End Property

        Public Property Text() As String
            Get
                Return _Text
            End Get
            Set(ByVal value As String)
                _Text = value
            End Set
        End Property

        Public Sub New(ByVal ID As Long, ByVal Text As String)
            _ID = ID
            _Text = Text
        End Sub

        Public Overrides Function ToString() As String
            Return _Text
        End Function
    End Structure


Можешь модифицировать и использовать под свои нужды.

В коде используется примерно так:
Код: Выделить всё
        DT = _OrderDBProv.GetOrderTypes

        tscbOrderType.Items.Clear()

        For Each Row As DataRow In DT.Rows
            tscbOrderType.Items.Add(New ListItemObject(NormalizeToLong(Row(0)), NormalizeToString(Row(1))))
        Next


и
Код: Выделить всё
MsgBox("ID выбранной записи: " & CStr(CType(tscbProblemState.SelectedItem, ListItemObject).ID))
С уважением,
Игорь Шувалов aka Ronin

amokr
Обычный пользователь
Обычный пользователь
 
Сообщения: 72
Зарегистрирован: 04.05.2009 (Пн) 13:27

Re: Combox + Item key

Сообщение amokr » 05.05.2009 (Вт) 18:52

[quote="Ronin"]Я, например делаю так:
Код: Выделить всё
    ''' <summary>
    ''' Обобщенная структура для занесения в простые листы, комбобоксы
    ''' </summary>
    ''' <remarks></remarks>
    Public Structure ListItemObject
        Public _ID As Long
        Public _Text As String

        Public Property ID() As Long
            Get
                Return _ID
            End Get
            Set(ByVal value As Long)
                _ID = value
            End Set
        End Property

        Public Property Text() As String
            Get
                Return _Text
            End Get
            Set(ByVal value As String)
                _Text = value
            End Set
        End Property
    End Structure

А смысл прописывать properties, если переменные объявлены public?:) очепятка?:)

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Combox + Item key

Сообщение FireFenix » 05.05.2009 (Вт) 20:04

Угу, спасибо....
Но работая через массив, нада много кода для динамики работы с элементами =\, а если комбиков больше одного, то вообще сплошные макароны ;D
Последний раз редактировалось FireFenix 05.05.2009 (Вт) 21:55, всего редактировалось 3 раз(а).
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Re: Combox + Item key

Сообщение Ronin » 05.05.2009 (Вт) 20:14

amokr писал(а):А смысл прописывать properties, если переменные объявлены public?:) очепятка?:)


Спс, поправил =) Невнимательный рефакторинг =)

Emzari
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 129
Зарегистрирован: 06.09.2002 (Пт) 9:08
Откуда: Georgia

Re: Combox + Item key

Сообщение Emzari » 06.05.2009 (Ср) 17:38

Если у тебя комбобокс заполняется данными из таблици в базе данных то можно вот так:

Допустим у нас имеется DataTable c именем DataTable1 а в нем два столбца ID и FullName тогда данные из таблицы можно привязать к ComboBox таким образом:

Код: Выделить всё
'привязка к комбобоксу
ComboBox1.DataSource = DataTable1
ComboBox1.DisplayMember = "ID"
ComboBox1.ValueMember = "FullName "

'получение данных из комбобокса
Dim id as Long
id = ComboBox1.SelectedValue

ndemidov
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 14.11.2007 (Ср) 16:23
Откуда: Earth planet

Re: Combox + Item key

Сообщение ndemidov » 09.05.2009 (Сб) 14:35

Как насчёт хранения "имя и ключ" в св-ве .Tag, разделяя их символом ControlChars.NullChar
Большинство людей не понимает, что великое многообразие и красочность мира будут служить им крепчайшей душевной поддержкой на протяжении всей жизни. Иван Ефремов


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

    TopList