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);
}
}
}