private void cbBerth_SelectedIndexChanged(object sender, System.EventArgs e)
{
baseObj = YardDraw.FindObject(MainForm.PYARD , cbBerth.Text  , "BT");
if (baseObj.ToInt32() > 0)
LoadData(baseObj);
MessageBox.Show(cbBerth.Text);
}
显示的内容都是最后一项的值!!但当是dropdownlist时就能正确显示!!

解决方案 »

  1.   

    你说是使用SelectedValueChanged事件?
      

  2.   

    和使用SelectedIndexChanged的结果一样!!还有我调试的时候发现item里的内容全部是一样的!!这是怎么回事呀?
      

  3.   

    private void frmEditBerth_Load(object sender, System.EventArgs e)
    {
    StringBuilder id = new StringBuilder(11); IntPtr bObj;
    if (baseObj.ToInt32() > 0)
    {
    LoadData(baseObj);
    }
    int count = YardDraw.GetObjectCount(MainForm.PYARD, "BT");
    for(int i = 0; i < count ; i++)
    {
    bObj = YardDraw.GetBaseObject(MainForm.PYARD ,"BT", i);
    YardDraw.GetObjName(bObj, id, 11);
    cbBerth.Items.Add(id);
    //if (String.Compare(this.Berth  , id.ToString()) == 0)
    // cbBerth.SelectedIndex = i;
    }
    }
    刚才我写了一个简单的没问题!!可能是其它地方的问题!!我检查一下!!
      

  4.   

    找到问题所在了!!id没转换成string!
    cbBerth.Items.Add(id.ToString());就没问题!!
      

  5.   

    to storm97(风暴不再) thank you!!