| Украина, Киев |
Опубликован: 13.07.2010 | Уровень: специалист | Доступ: платный
Самостоятельная работа 15:
Вывод текста в клиентскую область формы
Упражнение 2.Разбивка текста на колонки
Модифицируем предыдущую программу так, чтобы значения свойств выводились в столбик с отступом. Вот соответствующий вариант программы
using System;
using System.Windows.Forms;
using System.Drawing;
namespace Test
{
public class SysInfoColumn : Form
{
public SysInfoColumn()
{
// Начальные настройки формы
// Здесь ключевое слово this необязательно
this.Text = "Разбиение текста на колонки";
this.BackColor = SystemColors.Window;
this.ForeColor = SystemColors.WindowText;
}
// Заголовок этой функции набрать вручную!!!!!!!!!!!!!!!!!!!!!!!!!!!!
protected override void OnPaint(PaintEventArgs e)
{
Graphics gr = e.Graphics;
SolidBrush brush = new SolidBrush(this.ForeColor);
int linespacing = Font.Height;
Single y = 0; // Позиция строк по вертикали
SizeF sizeF = gr.MeasureString( // Измеряем текстовый блок
"ArrangeStartingPosition ", // Образец самого длинного текста
Font);
Single xCol = sizeF.Width;// Позиция второй колонки
gr.DrawString("ArrangeDirection: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.ArrangeDirection.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("ArrangeStartingPosition: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.ArrangeStartingPosition.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("BootMode: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.BootMode.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("Border3DSize: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.Border3DSize.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("BorderSize: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.BorderSize.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("CaptionButtonSize: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.CaptionButtonSize.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("CaptionHeight: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.CaptionHeight.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("ComputerName: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.ComputerName,
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("CursorSize: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.CursorSize.ToString(),
Font, brush, xCol, y);
y += linespacing;
gr.DrawString("DbcsEnabled: ",
Font, brush, 0, y);
gr.DrawString(SystemInformation.DbcsEnabled.ToString(),
Font, brush, xCol, y);
base.OnPaint (e);
}
}
}
Листинг
15.13.
Разбивка текста на колонки. Код файла SysInfoColumn.cs
Экранный результат выполнения этого кода будет таким
