Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: И снова ComboBox Добавлено: 19.07.06 11:32  

Автор вопроса:  seva | Web-сайт: vodosbor.ru | ICQ: 152580279 
Здравствуйте, уважаемые!

Вопрос достаточно прост, но четкого ответа не могу найти ни в литературе, ни в сети.
Нужно каждому элементу выпадающего списка присвоить определенное значение, чтобы в зависимости от выбранного элемента вычисления производились с тем или иным коэффициентом. Это обязательно делать через DataSource?
Заранее спасибо всем

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 19.07.06 13:15
Да, обязательно..
Но DataSource не означает, что в качестве источника данных обязана быть таблица БД или еще что-то.. В качестве источника может послужить также любой наследник IList или Array

Ответить

Номер ответа: 2
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #2 Добавлено: 19.07.06 20:50
Под System.Windows.Forms ListBox.DataSource может принимать IList или IListSource!

Под System.Web ListBox.DataSource может принимать любой IEnumerable

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 19.07.06 20:53
И через DataSource это делать совсем не обязательно!!!

Можно просто добавлять элементы, причем совершенно любые объекты, начиная с String и заканчивая HttpWebRequest.

Ответить

Номер ответа: 4
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #4 Добавлено: 19.07.06 21:19
И через DataSource это делать совсем не обязательно!!!

Да что ты!??? Ну ка продемонстрируй, как ты заюзаешь ValueMember без DataSource!!! я с удовольствием поучусь........

Ответить

Номер ответа: 5
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #5 Добавлено: 19.07.06 21:25
seva, как вариант...
можешь сделать следущее:
Если не хочешь возится с DataSource, то попробуй создать массив с твоими коэффициентами, и в событии SelectedIndexChanged получай индекс элемента в ComboBox и по этому же индексу выдергивай значение из своего массива.. Только тут важно,чтобы они были синхронизированы..

Ответить

Номер ответа: 6
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #6 Добавлено: 19.07.06 22:50
А причем тут вообще ValueMember и DataSource?
Я ж говорю, я могу положить в ListBox что угодно, любой объект и работать с ним!

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With ListBox1.Items
            .Add(New MyItem("Один", 1))
            .Add(New MyItem("Весемь", 8))
            .Add(New MyItem("Десять", 10))
            .Add(New MyItem("Пятнадцать", 15))
            .Add(New MyItem("Двадцать один", 21))
        End With
    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Me.Text = CType(ListBox1.SelectedItem, MyItem).Value.ToString
    End Sub


    Class MyItem
        Public Title As String
        Public Value As Integer

        Public Sub New()

        End Sub

        Public Sub New(ByVal Title As String, ByVal Value As String)
            Me.Title = Title
            Me.Value = Value
        End Sub

        Public Overrides Function ToString() As String
            Return Title
        End Function
    End Class
End Class

Ответить

Номер ответа: 7
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #7 Добавлено: 20.07.06 00:20
C классами понятно... тут вопросов нет.. Но по ходу (если я верно понял автора) у него элементы списка ни что иное как обычные строки.. И он к каждому элементу хочет прицепить еще по 1 значению... и для этих целей как нельзя лучше подойдет SelectedValue & ValueMember

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам