簡體   English   中英

訪問選擇Winforms組合框上的屬性

[英]access to property on selection winforms combobox

一篇文章具有NamePrice屬性。 我使用Name屬性在組合框cmbDataList顯示文章,如下所示

public Form1()
{
    InitializeComponent();
    cmbDataList.DataSource = GetData();
    cmbDataList.DisplayMember = "Name";
}

用戶選擇首選文章后,我想使用它的Price屬性將其分配給同一表單上的文本框。 那么,如何訪問該Price屬性?

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    //var sel = cmbDataList.SelectedItem;
}

您必須將SelectedItem為適當的對象。

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var sel = (YourObject)cmbDataList.SelectedItem;
    txt.Text = sel.Price.ToString();
}

除非所有名稱都是唯一的,否則您將需要引用唯一的標識符,例如articleID。

在這里,像這樣設置ComboBox的ValueMember

cmbDataList.ValueMember = "ID";

然后您就可以在事件處理程序上獲取價值了;

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var sel = cmbDataList.SelectedValue;

    //From here you're going to need to find your article with that particular ID.
}

另外。 您可以將DisplayMember作為商品名稱,將價格作為ValueMember ,然后以與我上面相同的方式將其獲取到SelectedIndexChanged的事件處理程序中。 SelectedValue將返回價格;

cmbDataList.ValueMember = "Price";

private void cmbDataList_SelectedIndexChanged(object sender, EventArgs e)
{
    var yourSelectedPrice = cmbDataList.SelectedValue;


}

假設GetData()返回一個表,則還需要編寫ValueMember ,如下所示:

InitializeComponent();
    cmbDataList.DataSource = GetData();
    cmbDataList.DisplayMember = "Name";
    cmbDataList.ValueMember = "Price";

現在,您選擇的顯示將與該值同步,您將可以使用它。

在此處獲取更多信息: 填充組合框

您需要設置ValueMember您可以這樣設置

cmbDataList.ValueMember =“ ID”;

然后在cmbDataList_SelectedIndexChanged事件上編寫代碼

也許這會幫助你

var sel = cmbDataList.SelectedValue

暫無
暫無

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

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