Китай |
Опубликован: 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
Экранный результат выполнения этого кода будет таким