头都晕了,你调试看看你的数组值是多少
RenderDatePart(dateParts[1],tw);

解决方案 »

  1.   

    try
    {
    DateTimeFormatInfo objDateInfo = DateTimeFormatInfo.CurrentInfo;

    dateParts = objDateInfo.ShortDatePattern.Split('/');
    }
    catch
    {
    dateParts = new string[]{"m","d","y"};
    }
    这里面try里面应该是没有错误但是dateParts的维数应该不到3!你好好检查一下objDateInfo.ShortDatePattern的内容!这里面的内容你能帖出来看看吗?objDateInfo.ShortDatePattern这里面可能只有一个“/“吧!!!所以在前面引用dateParts[0]的时候没有错,而dateParts[1]时候出错!
      

  2.   

    好像你的DataParts没有定义(没有分配空间,就是没有告诉它它是多个个的数组),
    string[] dateParts改为string[] dateParts=new string[3],在catch里把new 去掉看看.
      

  3.   

    数组越界了,比方说你 string [] data=new string[3];
    但是下文中有 data[3]或data[n]  (n>3)就会报错。
      

  4.   

    这种问题你用VS.Net带的跟踪调试工具,一下子就可以搞定啊