显示成员和价值成员

时间:2015-04-15 13:00:23

标签: vb.net combobox valuemember

您好我是VB平台的新手,任何人都可以帮助我理解最后几行代码,最后我用粗体突出显示,这对我来说是不理解或混淆的。显示成员和值编号有什么作用?

.. cmbcust 是组合框...

客户表中包含以下字段。

**Customer_sname** **Customer_code** **Customer_fname**
nokia       1       nokia corp.
samsung     2       samsung corp.
sony        3       sony corp.
Micromax    4       Micromax India corp.

传递 custval是nokia,samsung,sony

Public Function customfunc(ByVal custval As String) As DataSet
        Try
            Dim strSQL As String = "select * from customer  where  cust_sname  in (" & custval & ")"
            If Conn.State = ConnectionState.Open Then Conn.Close()
            Conn.Open()
            Dim Adap As New SqlDataAdapter(strSQL, Conn)
            Dim Ds As New DataSet
            Adap.Fill(Ds, "customer")
            ReadINICustomers = Ds
        Catch EXP As Exception
            MsgBox("Error Connecting to Server :" & EXP.Message, MsgBoxStyle.Critical)
        End Try
    End Function


   Public Sub Fillcustomer()
        Dim Lstcust() As String
        Dim Lstcust1 As String
        Lstcust1 = ""
        Lstcust1 = custINIval
        Dim Ds As New DataSet
        Ds = objData.ReadINICustomers(Lstcust1)
        cmbcust.DataSource = Ds.Tables("customer")
        cmbcust.DisplayMember = Ds.Tables("customer").Columns.Item("cust_sname").ToString().Trim()
        cmbcust.ValueMember = Ds.Tables("customer").Columns.Item("cust_code").ToString().Trim()
    End Sub

cmbcust.DisplayMember = Ds.Tables("顾客&#34)。Columns.Item(" cust_sname&#34)。。的ToString()修剪() cmbcust.ValueMember = Ds.Tables(" customer")。Columns.Item(" cust_code")。ToString()。Trim()

1 个答案:

答案 0 :(得分:4)

使用任何.NET语言(如VB.NET)时,the MSDN是您的朋友。它是有关.NET Framework中的语言和所有类型的文档的官方资源。在这种情况下,您要询问ComboBox控件上的几个属性。那么,您应该做的第一件事就是在MSDN中搜索ComboBox类。如果你这样做,你会发现this article。它列出了该类的所有成员,并有一个单独的文章解释每个成员。如果向下滚动属性列表,您将找到指向DisplayMember属性和ValueMember属性的文章的链接。

正如这些文章所描述的那样,ComboBox控件可以在其项列表中包含任何类型的对象。如果你把简单的字符串列表放到ComboBox中,那么它很容易确定列表中显示的内容以及当前值的返回值。但是,当您在ComboBox中放置复杂的自定义对象时,这是一个更难的主张。

默认情况下,它将显示ToString方法为其列表中的每个对象返回的内容。但是,通过设置DisplayMember属性,您可以指示它使用列表中对象的特定成员(例如PropertyFunction)而不是{{1} } 方法。您可以通过将ToString属性设置为对象成员的字符串名称来实现此目的。然后,它使用reflection在每个对象中按名称查找成员并检索其值。

DisplayMember非常相似,但它不是控制显示的内容,而是控制ValueMember属性返回的内容。默认情况下,SelectedValue属性只返回列表中选定的整个对象。但是,通过设置SelectedValue,您可以指示它只从对象返回一个特定成员的值而不是整个事物。