簡體   English   中英

C#填充組合框

[英]C# populate combobox

如何用一個數組填充C#中的組合框,該數組的顯示成員是數組的值,而值成員是數組的鍵?

string[] RelayTypeArray = new string[4]; 
RelayTypeArray[0] = null; 
RelayTypeArray[1] = "Boiler"; 
RelayTypeArray[2] = "Valve"; 
RelayTypeArray[3] = "Pump"; 
cmb_RelayType.DataSource = RelayTypeArray; 
cmb_RelayType.DisplayMember = RelayTypeArray; 
cmb_RelayType.ValueMember = ?????

照原樣使用數組...

string[] RelayTypeArray = new string[4]; 
RelayTypeArray[0] = null; 
RelayTypeArray[1] = "Boiler"; 
RelayTypeArray[2] = "Valve"; 
RelayTypeArray[3] = "Pump"; 
cmb_RelayType.DataSource = RelayTypeArray; 

如果需要文本: cmb_RelayType.SelectedValue

如果需要索引: cmb_RelayType.SelectedIndex

如果僅將string[]作為DataSource放置,則不必定義DataMemberValueMember 您可以簡單地獲取myComboBox.SelectedValuemyComboBox.SelectedIndex

DataMember -Property只是描述了一個屬性,該屬性將在您設置為DataSource的類型的ComboBox中顯示。

例如,您設置了一個

class Test
{
    public string Name { get; set; }
    public int Id { get; set; }
}

作為DataSource並希望該框顯示您必須設置的Name屬性

myComboBox.DataMember = "Name";

ValueMember是GUI的“不可見”屬性,您可以在其中存儲值以供以后使用,例如:

myComboBox.ValueMember = "Id"

因此,如果有人通過其顯示的Name選擇一項,則可以從ComboBoxItemValue (不知道該屬性的正確名稱)屬性中獲取Id

使用一個類並綁定它的集合:

class RelayType
{
    private int m_Index;
    private string m_Value;

    public RelayType(int index, string value)
    {
        m_Index = index;
        m_Value = value;
    }

    public int Index
    {
        get { return m_Index; }
    }

    public string Value
    {
        get { return m_Value; }
    }
}

var relayTypeCol = new List<RelayType>(); 
relayTypeCol.Add(new RelayType(0, ""));
relayTypeCol.Add(new RelayType(1, "Boiler"));
relayTypeCol.Add(new RelayType(2, "Valve"));
relayTypeCol.Add(new RelayType(3, "Pump"));

cmb_RelayType.DataSource = relayTypeCol; 
cmb_RelayType.DisplayMember = "Value"; 
cmb_RelayType.ValueMember = "Index";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM