选定的值不适用于组合框

时间:2017-11-05 12:18:31

标签: c# winforms visual-studio combobox

我用这些值填充我的组合框:

private void LoadUnits()
{
    using (FbConnection con = new FbConnection(Properties.Resources.connectionString_EB))
    {
        con.Open();
        using (FbCommand cmd = new FbCommand("SELECT UNITID, UNIT FROM UNITS", con))
        {
            FbDataReader dr = cmd.ExecuteReader();

            List<Int_String> list = new List<Int_String>();

            while (dr.Read())
            {
                list.Add(new Int_String { _int = Convert.ToInt32(dr[0]), _string = dr[1].ToString() });
            }
            unit_cmb.DataSource = list;
            unit_cmb.ValueMember = "_int";
            unit_cmb.DisplayMember = "_string";
        }
        con.Close();
    }
}

我创建了一个简单的按钮:

private void save_btn_Click(object sender, EventArgs e)
{
    unit_cmb.SelectedValue = 1;
    unit_cmb.SelectedValue = product.unitId; //When debugging unitid is = 1
}

问题是,当我按下第一行的按钮时,它会选择第一项,当我将该行放在LoadUnits()内作为最后一行时,它不会选择它(LoadUnits是OnLoad中的最后一个方法()函数)。

第二个问题是,当我只使用第二行(我需要使用它)时,即使product.unitId = 1

,它也不会在按钮中选择它

image

我的第一个想法是,我的组合框中可能没有selectedValue 1所以我设置了这个:

private void unit_cmb_SelectedIndexChanged(object sender, EventArgs e)
{
    if(unit_cmb.SelectedValue != null)
    MessageBox.Show(unit_cmb.SelectedValue.ToString());
}

和poof,当我手动选择第一项时,它的选择值为IS 1,因此IS项的值为1但由于某种原因我不能用程序选择它。

0 个答案:

没有答案