在程序中设置ComboBox1控件的text属性,发现如下问题:
当该控件的DropDownStyle属性值为DropDown时,程序可以给其text属性赋值;
当该空间的DropDownStyle属性值为DropDownList时,程序不能给其text属性赋值;
我现在想在DropDownStyle属性值为DropDownList时,也可以通过程序给text属性赋值,请问该如何实现,谢谢!

解决方案 »

  1.   

    本帖最后由 bdmh 于 2012-03-27 11:20:20 编辑
      

  2.   

    这个问题不是不能,是有时会出现,我的窗体有两个ComboBox控件,ComboBox1就可以,ComboBox2就不行!
      

  3.   


    具体还有什么不同?比如你在加一个ComboBox3,还能重现吗?
      

  4.   

    再加一个ComboBox3跟ComboBox2情况一样,不能出现了
      

  5.   

    问题是我的ComboBox2的text值是从dataTable字段中取的,而且我也不想让用户在ComboBox2中编辑值,所以才需要这种操作方式
      

  6.   

    或者有什么属性可以限制ComboBox2为只读
      

  7.   

    comboBox2.Enabled = false; 试试?
      

  8.   

    ComboBox1实现代码
    if (dataGridView1.CurrentRow.Cells["CustSex"].Value.ToString().Trim() == "0")
                {
                    comboBox1.Text = "先生";
                }
                else
                {
                    comboBox1.Text = "女士";
                }ComboBox2实现代码
    comboBox2.Text = dataGridView1.CurrentRow.Cells["CustTypeName"].Value.ToString().Trim();
    经调试,确认dataGridView1.CurrentRow.Cells["CustTypeName"].Value是有值的,两个控件的DropDownStyle属性值均为DropDownList,很是奇怪,请高手看看。
      

  9.   

    当ComboBox控件的DropDownStyle设置为DropDownList时,要想给ComboBox的Text属性赋值,此ComboBox控件的集合中必须有你要给此ComboBox赋的值。也就是说如果有个名为cmb的ComboBox控件,你想给cmb控件的text属性赋值为"aaa",那么cmb控件的集合中必须有"aaa"这一个成员,解决方法是
    cmb.Items.Add("aaa");
    cmb.SelectedIndex = cmb.Items.IndexOf("aaa");
    如果想删除"aaa"这个成员,则用下面的代码
    cmb.Items.Remove("aaa");
    希望对你有帮助。
      

  10.   

    补充一点,如果删除aaa这个成员,则给ComboBox控件的赋值也会失效。用前两段代码即可满足需求。
    如若看不懂请接上文。