int CurrentLine = 0;
        int TotalLinesPerPage = 0;
        int LineLength = 0;
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            Brush b = Brushes.Black;
            Font f = fontDialog1.Font;
            TotalLinesPerPage = (int)(e.MarginBounds.Height / f.Height);
            
            for (int i = 0; i < TotalLinesPerPage && CurrentLine < sf.Length; i++, CurrentLine++)
            {   
                string s="";
                LineLength = (int)e.Graphics.MeasureString(sf[CurrentLine], f).Width;//获取当前行的长度
                for (int n = 0; n <= LineLength / e.MarginBounds.X; n++)
                {
                    if (LineLength > e.MarginBounds.X)
                    {                        s += sf[CurrentLine].Substring(n * e.MarginBounds.X, e.MarginBounds.X) + Environment.NewLine;//运行是这句报错:"索引和长度必须引用该字符串内的位置。\r\n参数名: length"
                        e.Graphics.DrawString(s, f, b, e.MarginBounds.X, e.MarginBounds.Y + i * f.Height);
                        CurrentLine++;
                    }//判断当前行长度是否超多内页宽度,若超出则另取一行                    else
                    {
                        s += sf[CurrentLine].Substring(n * e.MarginBounds.X);
                        
                    }
                      
                }
                
                
            }            if (CurrentLine == sf.Length)
                e.HasMorePages = false;
            else
                e.HasMorePages = true;
        }
求解如何修改使程序实现打印文档自动换行