我有一个组合框,我用这种方式填充它:
DataTable dt = new DataTable();
using (SQLiteConnection conn = connection.Conn)
{
using (SQLiteCommand cmd = new SQLiteCommand(conn))
{
cmd.CommandText = "select id, description from category";
conn.Open();
using (SQLiteDataAdapter da = new SQLiteDataAdapter(cmd))
{
da.Fill(dtChargeCodes);
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "description";
comboBox1.ValueMember = "id";
}
}
}
我想要实现的是获取comboBox中所选项目的数据,但是当我尝试使用MessageBox.Show(comboBox1.SelectedItem.ToString());
显示它时,我得到的是类型System.Data.DataRowView.
而不是实际值表类别中的字段描述。请帮忙......谢谢。
答案 0 :(得分:5)
试试这个:
MessageBox.Show(comboBox1.SelectedValue);
答案 1 :(得分:5)
使用
comboBox1.SelectedText
或
((System.Data.DataRowView)(comboBox1.SelectedItem))["description"]
如果您需要访问SelectedIndexChanged事件中的值,则可能需要使用第二种方法(请参阅here)
答案 2 :(得分:2)
我认为你需要
MessageBox.Show(comboBox1.SelectedItem.Value.ToString())
答案 3 :(得分:2)
如果您正在寻找屏幕值,请使用:
MessageBox.Show(combobox1.SelectedText);
答案 4 :(得分:1)
一些解释:
MessageBox.Show(comboBox1.SelectedValue.ToString()); //get selected item value
MessageBox.Show(comboBox1.Text); //get selected item text