2

嗨,我是 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的是诺基亚、三星、索尼

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("customer").Columns.Item("cust_sname").ToString().Trim() cmbcust.ValueMember = Ds.Tables("customer").Columns.Item("cust_code") .ToString().Trim()

4

1 回答 1

4

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

正如那些文章所描述的,ComboBox控件可以在其项目列表中包含任何类型的对象。如果您将一些简单的东西(如字符串列表)放入 中ComboBox,那么它显然很容易确定在列表中显示什么以及为其当前值返回什么。但是,当您在 中放置复杂的自定义对象时ComboBox,这是一个更困难的命题。

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

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

于 2015-04-15T13:25:05.460 回答