簡體   English   中英

如何獲取列表框選定的項目值

[英]How to get listbox selected item value

我正在使用C#.NET 4.0

我試圖獲取列表框中單個選定項的值。

這是我填充控件的方式:

this.files_lb.DataSource = DataTable object

在我的設計器中,我將file_name指定為DisplayMember,將file_id指定為DisplayValue

在列表框中選擇一個項目后,我嘗試了以下方法來獲取值:

this.files_lb.SelectedValue.ToString()

但它返回的只是"System.Data.DataRowView".

在此鏈接:將列表框中所選項的值作為字符串

有人建議 -

String SelectedItem = listBox1.SelectedItem.Value

但是,當我嘗試這個時,“價值”不是一個選項。

如何從列表框中的單個選定項獲取ValueMember值?

var text = (listBox1.SelectedItem as DataRowView)["columnName"].ToString();

columnName替換為要從中獲取數據的列的名稱,該列將與數據源中的列對應。

如果沒有選定項目,請注意空值。

真的應該這么容易; 我在按鈕的點擊事件中有以下內容,以確保我沒有在我腦海中簡化它:

private void button1_Click(object sender, EventArgs e)
    {
        string selected = listBox1.GetItemText(listBox1.SelectedValue);
        MessageBox.Show(selected);
    }

結果如下:

在此輸入圖像描述


編輯

看起來你的問題可能是沒有在控件上設置屬性:

在此輸入圖像描述

  1. 選擇ListBox控件
  2. 單擊小箭頭以顯示綁定/項目選項
  3. 選擇“ 使用數據綁定項”

如果我取消選擇該框,我會得到與您描述的完全相同的行為。

在此輸入圖像描述

var selectedValue = listBoxTopics.SelectedItem;
if (selectedValue != null)
{ 
     MessageBox.Show(listBoxTopics.SelectedValue.ToString());
}

您可能需要設置列表框的DataValueField。

NewEmployeesLB.DataSource = newEmployeesPersons.DataList.Select(np => new 
ListItem() { Text = np.LastName + ", " + np.FirstName, Value = np.PersonID.ToString() }).ToList();
            NewEmployeesLB.DataTextField = "Text";
            NewEmployeesLB.DataValueField = "Value";
            NewEmployeesLB.DataBind();

暫無
暫無

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

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