首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComboBox ItemList SelectedValue

ComboBox ItemList SelectedValue
EN

Stack Overflow用户
提问于 2013-08-08 04:19:35
回答 4查看 58.9K关注 0票数 0

VB.NET (2010)

我正在尝试创建一个具有值和显示项的ComboBox。以下是相关的代码片段。我最初尝试使用datatable,结果与此完全相同:

代码语言:javascript
复制
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Try
        cmbFromGroup.Items.Clear()
        ItemList.Clear()
        Item = New SelectionItem(KeyValue, DisplayValue)
        'Link combobox and Item
        ItemList.Add(Item)
        cmbFromGroup.DataSource = ItemList
        cmbFromGroup.DisplayMember = "Display"
        cmbFromGroup.ValueMember = "Key"
    Catch ex As Exception
        Stop
    End Try
End Sub

Private Sub cmbFromGroup_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbFromGroup.SelectedIndexChanged
    Try
        cmbFromMP3.Items.Clear()
        Dim x As String = cmbFromGroup.SelectedValue
        ' <snip>
        cmbFromMP3.SelectedIndex = 0
    Catch ex As Exception
        Stop
    End Try
End Sub

Public Interface ISelectionItem
    Property Key As String
    Property Display As String
End Interface

Public Class SelectionItem
    Implements ISelectionItem

    Public Sub New(ByVal vKey As String, ByVal vDisplay As String)
        _Key = vKey
        _Display = vDisplay
    End Sub

    Public Property Key As String Implements ISelectionItem.Key
    Public Property Display As String Implements ISelectionItem.Display

End Class

我遇到的问题是cmbFromGroup.SelectedValue不包含所选项目的值。

我得到的是(来自观察) cmbFromGroup.SelectedValue {Player.SelectionItem}对象

我从cmbFromGroup.SelectedValue得到的唯一选项是Equals、GetHashCode、GetType、ReferenceEquals和ToString,这些选项都没有给出我所期望的ValueMember。

如何从所选项目中获取ValueMember?

EN

回答 4

Stack Overflow用户

发布于 2014-08-23 00:00:04

在组合体上使用.text

代码语言:javascript
复制
Dim x As String = cmbFromGroup.text
票数 2
EN

Stack Overflow用户

发布于 2013-08-08 20:32:08

我最终想出的解决方案是

代码语言:javascript
复制
cmbFromGroup.SelectedIndex = -1

然后在cmbFromGroup_SelectedIndexChanged潜水艇中捕获它。

票数 1
EN

Stack Overflow用户

发布于 2015-07-01 19:28:06

我也有同样的问题,我设法使用了一个数据库(使用一个存储过程)。以下是相关的代码片段

代码语言:javascript
复制
'On Form load or Button Click (Depending on your application)
conString.Open() 'change conString to your connection string name
'Set Command for the stored procedure
Dim sqlComGetDirectorates As New SqlCommand
With sqlComGetDirectorates
     .CommandType = CommandType.StoredProcedure
     .Connection = conString
     .CommandText = "ProcGetDirectorates" 'your stored procedure name
     'if your stored procedure has parameters
     '.Parameters.AddWithValue("@OfficerIdentity", txtPNum.Text) 
End With

'Create Data Adapter (Using the stored procedure Command created earlier)
' Create a data table and Fill the Data adapter 
Dim DatadptDirectorates As New SqlDataAdapter(sqlComGetDirectorates)
Dim dattabDirectorates As New DataTable
DatadptDirectorates.Fill(dattabDirectorates)
'Your Combobox 
ComboDirectorate.DataSource = dattabDirectorates
ComboDirectorate.DisplayMember = "DirectorateName"
ComboDirectorate.ValueMember = "DirectorateCode"
'User will see DisplayMember in the Combobox

‘关于组合框的SelectedIndexChanged

txtDirectorate.Text = ComboDirectorate.SelectedItem(1)

‘’注意: Combobox.SelectedItem将在内部从‘’存储过程‘’的结果中获取一行您需要通过在结果(从存储过程中)中指定combobox.selecteditem(??)‘’来获取所需的值。如果您有0- xx列,请为(??)

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18113052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档