关于下拉框的问题

时间:2022-12-19 20:33:18
//show month  //显示月份
    for(int b=1;b<=12;b++) 
    {
 CString st;
 st.Format("%d",b);
          m_yue.AddString(st);
    }

    CString s;
    s.Format("%d",m);
    int t=m_yue.SelectString(0, s); 
    m_yue.SetCurSel(t);    //设置默认的月份为当前月份 

当月份为10-12份时,默认显示没有问题,但是1-9月份时就出现了问题。本月为1月,但默认选择了10月份,调试知道在int t=m_yue.SelectString(0, s)这段出现问题,s的结果是正确的,为1,但运行后t却不是得到0,而是9。  

我还有一个下拉框,在默认日期时,写的方法跟这个一样,但却没有出现这样的怪现象。

不知道是什么原因,望大家帮忙看看,谢谢!

7 个解决方案

#1


int t=m_yue.SelectString(0, s);
搂主将字符串类型的数据赋值给了整型。转化一下看看

#2


不好意思。看错了。刚刚我说错了

#3


取消CComboBox的Sort属性
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"

#4


没有用sort的形式,默认的是没有sort的。我用的是combo box控件。


日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2);  //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);


#5


刚才再次测试了下,只有是1月时才会出错,2-12月不会出错。  同时在日期下拉框里也是这样,如果是1号,则默认的也是10。其它的情况都显示正确。

实在不明白了。

#6


估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。

#7


估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。

#1


int t=m_yue.SelectString(0, s);
搂主将字符串类型的数据赋值给了整型。转化一下看看

#2


不好意思。看错了。刚刚我说错了

#3


取消CComboBox的Sort属性
或者用如下的值 : “01”, “02”,...."09", "10", "11", "12";
字符串比较 "2", "3" ...."9" 〉 "10", "11", "12"

#4


没有用sort的形式,默认的是没有sort的。我用的是combo box控件。


日期的控件就不会出现这种问题,像今天是4号,就能正常默认为4号。代码如下:
CString s2;
s2.Format("%d",d);
int t2=m_ri.SelectString(0,s2);  //得到当前日期在列表中的序号
m_ri.SetCurSel(t2);


#5


刚才再次测试了下,只有是1月时才会出错,2-12月不会出错。  同时在日期下拉框里也是这样,如果是1号,则默认的也是10。其它的情况都显示正确。

实在不明白了。

#6


估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。

#7


估计是s2.Format("%d",d);这句出现问题,可能你设置了格式,所以找不到这个1,所以出现问题
我觉得应该改为s2.Format("%-2d",d);的形式。