2015-04-15 50 views
2

您好我是VB新手平臺,任何人都可以幫助我理解最後幾行代碼,這裏我最後用加粗來突出顯示,這對我來說是不理解或困惑的。該顯示成員和值的數字是做什麼的?顯示會員和價值會員

.. cmbcust是ComboBox ...

客戶表中有以下字段。

**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( 「客戶」)。Columns.Item( 「cust_sname」)。的ToString( ).Trim() cmbcust.ValueMember = Ds.Tables( 「客戶」)。Columns.Item( 「CUST_CODE」)。toString()方法。TRIM()

+0

[docs](https://msdn.microsoft.com/en-us/library/system.windows.forms.combobox_properties(v = vs.110).aspx)非常清晰。 ValueMember是控件中項目的實際值,而DisplayMember是UI中顯示的內容。 –

+0

如果有人選擇'sony','ValueMember'會返回3。 – OneFineDay

+0

請注意,您的函數名稱是'funcion',它是VB.Net中的保留字。您不能使用[KeyWords](https://msdn.microsoft.com/en-us/library/ksh7h19t%28v=vs.90%29.aspx)作爲某個名稱。它也會導致編譯器錯誤。 – Eminem

回答

4

在任何.NET語言的工作時s,比如VB.NET,the MSDN是你的朋友。它是有關.NET Framework中語言和所有類型的文檔的官方資源。在這種情況下,您在詢問ComboBox控件上的幾個屬性。那麼你應該做的第一件事就是搜索MSDN中的ComboBox類。如果你這樣做,你會發現this article。它列出了班級的所有成員,並有單獨的文章解釋每個成員。如果向下滾動查看屬性列表,可以找到DisplayMember屬性和ValueMember屬性的文章鏈接。

正如這些文章描述的那樣,ComboBox控件可以在其項目列表中包含任何類型的對象。如果你把簡單的字符串列表放入ComboBox,那麼它很容易確定列表中顯示的內容以及返回當前值的內容。但是,將複雜的自定義對象放置在ComboBox中時,這是一個更困難的建議。

默認情況下,它將顯示任何ToString方法返回的列表中的每個對象。但是,通過設置DisplayMember屬性,可以指示它使用列表中對象的特定成員(例如PropertyFunction)而不是ToString方法。您可以通過將DisplayMember屬性設置爲對象成員的字符串名稱。然後它使用reflection在每個對象中按該名稱查找成員並檢索其值。

ValueMember非常相似,但不是控制顯示內容,而是控制SelectedValue屬性返回的內容。默認情況下,SelectedValue屬性只是返回列表中選定的整個對象。但是,通過設置ValueMember,可以指示它僅從對象中返回一個特定成員的值,而不是整個事物。

+1

謝謝Steven,從現在開始,我將參考MSDN的任何.net框架疑惑。 –