绑定后设置combobox.Text="";这样就不会报那个错了

解决方案 »

  1.   

    2楼的试过了,不行,我试过了,
    private void BindArea()
            {
                this.cboxCArea.DataSource = _Area.GetAllAreas();           
                this.cboxCArea.DisplayMember = "Name";
                this.cboxCArea.ValueMember = "ID";      
            }
    这是绑定,winform调用class的,private void frmCliManagement_Load(object sender, EventArgs e)
            {
                this.BindArea();
                cboxCArea.SelectedValue = -1;
            }
    然后save button 
     private void btnSave_Click(object sender, EventArgs e)
            {
                try
                {
                    clsClient prClient = new clsClient();//class client                prClient.AreaID = cboxCArea.SelectedValue.ToString();                if (cboxCArea.Text == "")
                        {
                            MessageBox.Show("Not allow empty!", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        else
                        {
                            lcClient.InsertClient(prClient);
                            MessageBox.Show("Add Succeed!", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
    }
          catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
    }
      

  2.   

    或者能告诉我,怎样让这个绑定的combobox一开始就显示please select? 但是不能把please select 插进database.....哈
            public List<clsArea> GetAllAreas()
            {
                DataSet lcDS = bDbconnection.RunProcReturn("select * from Area", "Area");
                List<clsArea> lcClient = new List<clsArea>();
                foreach (DataRow lcDataRow in lcDS.Tables[0].Rows)
                {
                    clsArea lcArea = new clsArea();
                    lcArea.ID = lcDataRow["AreaID"].ToString();
                    lcArea.Name = lcDataRow["AreaName"].ToString();
                    lcArea.Type = lcDataRow["AreaType"].ToString();
                    lcClient.Add(lcArea);
                }
                return lcClient;
            }这些是在类里面定义的然后在winform里面调用
    其实这个我的毕业设计其他功能都基本上实现了,现在只是想着怎样设计界面人性化
      

  3.   

    直接ComboBox.Text = "please select",数据绑定,但不设置SelectedIndex不可以?
      

  4.   

    我不是很明白6楼的意思...是在BindArea 还是 formload..我两个都试了,都是不成功,如果我不设置
    comboBox1.SelectValue=-1; 就会自动显示表的第一行.
      

  5.   

    自己在调用 cboxCArea.SelectedValue时要检查它是不是空不就完了。
      

  6.   

     string sql = "select Parametersid,Parametersname from TG_SystemParameters union select Parametersid=-1,TG_SystemParameters='--请选择--'";
                    this.TGcbxcompanytype.DataSource = runcmd.gettable(sql);
                    this.TGcbxcompanytype.ValueMember = "Parametersid";
                    this.TGcbxcompanytype.DisplayMember = "Parametersname";
                    this.TGcbxcompanytype.SelectedIndex = 0;
    楼主给你点提示!
      

  7.   

    DisplayMember,ValueMember组合使用
      

  8.   

    er....尝试了。。
    this.combobox.SelectedIndex = 0;
    Error:
    InvalidArgument=Value of '0' is not valid for 'SelectedIndex'.
    Parameter name: SelectedIndex改成 this.combobox.SelectedValue = 0;string sql = "select Parametersid,Parametersname from TG_SystemParameters union select Parametersid= '-1',TG_SystemParameters='--请选择--'";这样就可以了
    太谢谢yangduglas了。
      

  9.   

    er....一个小问题,,如果判断是"--请选择--",弹出警告:请选择Area.....