combox控件中我设置了“0“,”1“,”2“这三个数,直接调用没有问题,然后有人就直接在combox里面输入1,发现系统报错说是类型错误。然后我想算了,直接用DropDownStyle中的DropDownList让你不能输入就是了。结果boss表示要给别人一个默认值。找了半天都没找到方法解决。。希望各位可以帮我一下,谢谢
1.将手动输入的数据变成string类型,不过说是数组不好变(新手不懂这个怎么变)
2.将DropDownList的值显示出一个默认的值。
3.或者有更好的解决方法期待

希望各位可以随便帮我实现上面3种中的一种。谢谢控件

解决方案 »

  1.   

    你试试 给selectedValue  赋值
      

  2.   

    maxSpeed什么类型?
    combobox里面的Text里面的数值是多少 ?
      

  3.   

    maxspeed就是string类型。combobox.Text返回的就是string类型。放得数字是”1“,”2“,这几个
      

  4.   

    2.将DropDownList的值显示出一个默认的值。设置DropDownList的SelectedValue的值为你的默认值,前提是你的默认值在DropDownList列表中存在
      

  5.   

    左边 maxSpeed string类型
    右边 Convert.ToInt32() int类型+ Convert.ToInt32() int 类型左右两边可以相等吗?
      

  6.   

    我弄错了。maxSpeed是int类型。combobox.Text是string类型。我以为你问的是combobox里的东西,抱歉
      

  7.   

    1。手动输入的不管是什么值,你通过Text取到的都是string类型的
    2。默认值的问题,设置SelectedIndex属性值,至于你出现的那个错误,说明你输入的不是数字或者说不是int类型的数字,如果你输入的是1,按照你的代码是不会出现这个错误的
      

  8.   

    在那里我需要输入+和-这两个正负值。结果不给我输入。即使我输入了+的ASCII码16也没有给我反应。。
      

  9.   

    在Load事件里让Combox的selectindex=0
      

  10.   

    你首先要清楚类型转换,ToInt32这个方法是将别的类型转换为十进制的整数,你能把+,-转换成数字吗?建议先了解一下类型转换
      

  11.   

    你首先要清楚类型转换,ToInt32这个方法是将别的类型转换为十进制的整数,你能把+,-转换成数字吗?建议先了解一下类型转换我晕。。我表达的不是这个意思。。
      

  12.   

    对啊,中文格式的就会这样?
    ASCII码不同?
      

  13.   

    1.试着将combox.text.trim(),去掉空格试试
    2。默认值的问题,设置SelectedIndex属性值
      

  14.   

    还有,1中这样无法转换的,你要将后面括起来然后.Tostring()
      

  15.   

    没法tostring()因为你获得数据是数组,不是变量。所以不能tostring()这个我早试过了
      

  16.   

    尝试着
    Convert.ToInt32(Commobox.Text.Trim());
    看你截图,貌似中间有空格,
      

  17.   

    不好意思,没看到后面的,你MessageBox弹出你填的数字的结果到底是什么看看,
    选项少的话做个if判断试试.
    你的不是数组么,或者这样将值添加到dropdownlist中试试:            foreach (var item in dtpro)
                {
                    alpro.Add(new DictionaryEntry(item.Key, item.Value));
                }我前几天做一个例子是这么做的
      

  18.   

    我明白你的意思了,你是想输入负数对吧
    其实这个可以选择一个折中的方法,就是在转换为Int之前先判断一下combobox.Text.Trim()是否是以"-"开头的,如果是,则只需要转换后面的数字,然后将"-"加上就好了。
    至于全角半角数字的问题,一般是给用户一个友好提示,如果非要输入的话,你可以找一下相关的转换方法。
      

  19.   

    你不需要做数据验证?
    int.trypase()
      

  20.   

    /// <summary>
            /// 加载ComboxBox数据
            /// </summary>
            /// <param name="cb"></param>
            /// <param name="data"></param>
            public static void LoadComboxBoxData(ComboBox cb, DataTable data)
            {
                DataRow row = data.NewRow();
                row["F_Key"] = 0;
                row["F_Name"] = "[请选择]";
                data.Rows.InsertAt(row, 0);
                cb.DataSource = data;
                cb.DisplayMember = "F_Name";
                cb.ValueMember = "F_Key";
            }/// <summary>
            /// 得到选中下拉列表的key值
            /// </summary>
            /// <param name="cb"></param>
            /// <returns></returns>
            public static string GetSelectedComboxBoxValue(ComboBox cb)
            {
                return ((DataRowView)cb.Items[cb.SelectedIndex])["F_Key"].ToString().Trim();
            }
    有其他需要自己重载吧
      

  21.   

    是输入法的问题,输入中文数字了。解决方法就是设定IME,combobox禁用IME。cmb.ImeMode = ImeMode.Disable;