您好我是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()
答案 0 :(得分:4)
使用任何.NET语言(如VB.NET)时,the MSDN是您的朋友。它是有关.NET Framework中的语言和所有类型的文档的官方资源。在这种情况下,您要询问ComboBox
控件上的几个属性。那么,您应该做的第一件事就是在MSDN中搜索ComboBox
类。如果你这样做,你会发现this article。它列出了该类的所有成员,并有一个单独的文章解释每个成员。如果向下滚动属性列表,您将找到指向DisplayMember
属性和ValueMember
属性的文章的链接。
正如这些文章所描述的那样,ComboBox
控件可以在其项列表中包含任何类型的对象。如果你把简单的字符串列表放到ComboBox
中,那么它很容易确定列表中显示的内容以及当前值的返回值。但是,当您在ComboBox
中放置复杂的自定义对象时,这是一个更难的主张。
默认情况下,它将显示ToString
方法为其列表中的每个对象返回的内容。但是,通过设置DisplayMember
属性,您可以指示它使用列表中对象的特定成员(例如Property
或Function
)而不是{{1} } 方法。您可以通过将ToString
属性设置为对象成员的字符串名称来实现此目的。然后,它使用reflection在每个对象中按名称查找成员并检索其值。
DisplayMember
非常相似,但它不是控制显示的内容,而是控制ValueMember
属性返回的内容。默认情况下,SelectedValue
属性只返回列表中选定的整个对象。但是,通过设置SelectedValue
,您可以指示它只从对象返回一个特定成员的值而不是整个事物。