using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Text; using System.Windows.Forms; class TextColumns: Form { public static void Main() { Application.Run(new TextColumns()); } public TextColumns() { Font = new Font("Times New Roman", 10); ResizeRedraw = true; } protected override void OnPaint(PaintEventArgs pea) { DoPage(pea.Graphics, ForeColor,ClientSize.Width, ClientSize.Height); } protected void DoPage(Graphics grfx, Color clr, int cx, int cy) { Brush brush = new SolidBrush(clr); int iChars, iLines; string str = "Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text "; StringFormat strfmt = new StringFormat(); PointF[] aptf = { new PointF(cx, cy) }; grfx.TransformPoints(CoordinateSpace.Device, CoordinateSpace.Page, aptf); grfx.PageUnit = GraphicsUnit.Point; grfx.TransformPoints(CoordinateSpace.Page, CoordinateSpace.Device, aptf); float fcx = aptf[0].X; float fcy = aptf[0].Y; strfmt.HotkeyPrefix = HotkeyPrefix.Show; strfmt.Trimming = StringTrimming.Word; strfmt.FormatFlags |= StringFormatFlags.NoClip; strfmt.SetTabStops(0, new float[] { 18 }); for (int x = 0; x < fcx && str.Length > 0; x += 156) { RectangleF rectf = new RectangleF(x, 0, 144, fcy - Font.GetHeight(grfx)); grfx.DrawString(str, Font, brush, rectf, strfmt); grfx.MeasureString(str, Font, rectf.Size, strfmt, out iChars, out iLines); str = str.Substring(iChars); } } }