簡體   English   中英

在 selectedIndexChanged 事件上訪問 comboBox 的值

[英]Access to value of comboBox on selectedIndexChanged event

我有一個帶有SelectedItemChanged事件的comboBox 所以我想提取所選項目的價值,例如:

private void cboCustomerType_SelectedIndexChanged(object sender, EventArgs e)
{
    var db = new SQLConnMgr();

    ComboBox cmb = (ComboBox)sender;
    var comboSelectedValue = cmb.SelectedItem;
}

問題是我想要的值在cmb.SelectedItem.Row.ItemArray[1] 在此處輸入圖像描述

但我無法訪問cmb.SelectedItem.Row 為什么我不能像這樣簡單: cmb.SelectedItem.Row.ItemArray[1] 問候

您選擇的項目類型是 DataRowView 因此您需要將 SelectedItem 轉換為:

private void cboCustomerType_SelectedIndexChanged(object sender, EventArgs e)
{
    // A combobox with nothing selected will have a SelectedIndex of -1
    if (cboCustomerType.SelectedIndex > -1)
    {
        // Cast SelectedItem to DataRowView
        DataRowView item = cboCustomerType.SelectedItem as DataRowView;

        if (item != null)
        {
            // Access the data in column 1 of the selected row
            string value = item[1].ToString();
        }
    }
}

我相信您正在將 combobox 與DataSet綁定。 所以你可以這樣做:

DataRow dataRow = dataSet.Select(string.Format("FieldName = '{0}'",     ComboBox.SelectedValue.ToString()))[0];

if (ComboxBox.SelectedValue != null)
{

// can use fields like 

String text = dataRow[“fieldName”].ToString();
}

else
{ //something wrong
}
}

代替

ComboBox cmb = (ComboBox)sender;

ComboBox cmb = sender as ComboBox;

這樣對我有用。

暫無
暫無

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

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