[英]how to set selected value of combo box in C#
我有兩個組合框(例如cbo_zone和cbo_floor),它們都具有表作為數據源
private void load_cbo_zone()
{
clz_Common_References ccr = new clz_Common_References ();
DataTable dt_zone = ccr.get_zone_detail();
cbo_zone.DataSource = dt_zone;
cbo_zone.ValueMember = "ID";
cbo_zone.DisplayMember = "zone";
cbo_zone.SelectedIndex = -1;
}
`
private void load_cbo_floor()
{
int ID_zone_ref = Convert.ToInt16(cbo_zone.SelectedValue);
clz_Common_References ccr = new clz_Common_References();
DataTable dt_flr = ccr.get_floor_data_fr_Ref_IDZone(ID_zone_ref);
cbo_floor.DataSource = dt_flr;
cbo_floor.DisplayMember = "Floor";
cbo_floor.ValueMember = "ID";
cbo_floor.SelectedIndex = -1;
}
`。 我編寫了如下代碼來更新cbo_floor。
private void cbo_zone_SelectionChangeCommitted(object sender, EventArgs e)
{
load_cbo_floor();
}
現在,當我單擊datagridview的數據行時,需要更新cbo_zone和cbo_floor。
int ref_area_id, ref_floor_id, ref_zone_id;
int.TryParse(dt_issued_mat.Rows[0][11].ToString(), out ref_area_id);
DataTable dt_area_detail = ccr.get_area_data_fr_area_id(ref_area_id);
int.TryParse(dt_area_detail.Rows[0][2].ToString(), out ref_floor_id);
DataTable dt_floor_detail = ccr.get_floor_data_fr_floor_id(ref_floor_id);
int.TryParse(dt_floor_detail.Rows[0][2].ToString(), out ref_zone_id);
DataTable dt_zone_detail = ccr.get_zone_data_fr_zone_id(ref_zone_id);
之后使用
cbo_zone.Text = dt_zone_detail.Rows[0][1].ToString();
cbo_floor.Text = dt_floor_detail.Rows[0][1].ToString();
我能夠在組合框上顯示這些值,但是一旦嘗試獲取cbo_floor.SelectedValue代碼就無法使用。
然后,我可以使用來獲取相關的SelectedIndex
int index = cbo_zone.FindString(dt_zone_detail.Rows[0][1].ToString());
cbo_zone.SelectedIndex = index ;
組合框仍然不顯示任何內容,“ cbo_zone.SelectedValue”也不顯示值。我的目標是獲取cbo_floor.SelectedValue。 請幫忙 。
代替cbo_zone.Text = dt_zone_detail.Rows[0][1].ToString(); cbo_floor.Text = dt_floor_detail.Rows[0][1].ToString();
cbo_zone.Text = dt_zone_detail.Rows[0][1].ToString(); cbo_floor.Text = dt_floor_detail.Rows[0][1].ToString();
采用
cbo_zone.Items.Add( dt_zone_detail.Rows[0][1].ToString());
cbo_floor.Items.Add ( dt_floor_detail.Rows[0][1].ToString());
首先使用索引不是一個好主意。 您擁有價值,使用它們。 使用索引會給您帶來麻煩。
cbo_zone.SelectedValue = myValue.ToString();//find the value from your data
其次,選擇地板時,您需要先用相關值填充地板,因為它已經具有最后選擇的數據。
load_cbo_floor();
cbo_floor.SelectedValue = myValue.ToString();//find the value from your data
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.