listBox1.DataSource = da.Tables[0];
            listBox1.DisplayMember = "username"; 
            listBox1.ValueMember = "id"; 
            textBox1.Text = listBox1.SelectedValue.ToString();//这个可以显示没有问题,但这个得出来的结果是id值吗?
            string a = listBox1.SelectedValue.ToString();
            if (a == "")
            {
                a = "1";
            }            int UserID = Convert.ToInt32(a);//这步转换成为数字id就错了。

解决方案 »

  1.   

    不用SelectedValue,改用SelectedItem试试。
      

  2.   

    你要在绑定数据之前就把
    listBox1.DisplayMember = "username";  
      listBox1.ValueMember = "id";  
    设置好才行哦,绑定之后就不起效啦~!
      

  3.   

    SelectedValue属性得出的值是ValueMember对应的ID值  listBox1.DataSource = da.Tables[0];
      listBox1.DisplayMember = "username";  
      listBox1.ValueMember = "id";  int UserID = 0;
    if(listBox1.SelectedValue!=null && !string.IsNullOrEmpty(listBox1.SelectedValue.ToString()))
    {
      UserID = Convert.ToInt32(listBox1.SelectedValue.ToString()))
    }