| netlib.narod.ru | < Назад | Оглавление | Далее > |
Ниже показана первая — пока еще незавершенная — программа, выводящая на экран значения свойств класса SystemInformation.
SysInfoFirstTry.cs
//------------------------------------------------
// SysInfoFirstTry.cs (C) 2001 by Charles Petzold
//------------------------------------------------
using System;
using System.Drawing;
using System.Windows.Forms;
class SysInfoFirstTry: Form
{
public static void Main()
{
Application.Run(new SysInfoFirstTry());
}
public SysInfoFirstTry()
{
Text = "System Information: First Try";
BackColor = SystemColors.Window;
ForeColor = SystemColors.WindowText;
}
protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
Brush brush = new SolidBrush(ForeColor);
int y = 0;
grfx.DrawString("ArrangeDirection: " +
SystemInformation.ArrangeDirection,
Font, brush, 0, y);
grfx.DrawString("ArrangeStartingPosition: " +
SystemInformation.ArrangeStartingPosition,
Font, brush, 0, y += Font.Height);
grfx.DrawString("BootMode: " +
SystemInformation.BootMode,
Font, brush, 0, y += Font.Height);
grfx.DrawString("Border3DSize: " +
SystemInformation.Border3DSize,
Font, brush, 0, y += Font.Height);
grfx.DrawString("BorderSize: " +
SystemInformation.BorderSize,
Font, brush, 0, y += Font.Height);
grfx.DrawString("CaptionButtonSize: " +
SystemInformation.CaptionButtonSize,
Font, brush, 0, y += Font.Height);
grfx.DrawString("CaptionHeight: " +
SystemInformation.CaptionHeight,
Font, brush, 0, y += Font.Height);
grfx.DrawString("ComputerName: " +
SystemInformation.ComputerName,
Font, brush, 0, y += Font.Height);
grfx.DrawString("CursorSize: " +
SystemInformation.CursorSize,
Font, brush, 0, y += Font.Height);
grfx.DrawString("DbcsEnabled: " +
SystemInformation.DbcsEnabled,
Font, brush, 0, y += Font.Height);
}
}
Что ж, я сдался после 10 элементов не потому, что устал печатать. Просто я осознал, что это был не лучший подход и, вероятно, мне придется переписать программу в каком-то другом, более универсальном виде. Хотя и это не так уж плохо для первой попытки (см. рисунок ниже).

Давайте взглянем на работу этой программы.
Каждую строку выводит метод DrawString. В качестве первого аргумента указывается имя свойства, объединенное с его значением. При конкатенации свойство SystemInformation автоматически преобразуется в строку. Для этого без участия программиста вызывается метод ToString. Обратите внимание на формат вывода свойств, связанных с размерами: здесь указана ширина и высота. DrawString также обеспечивает подходящий межстрочный интервал. При каждом вызове, начиная со второго, значение y увеличивается:
у += Font.Height
При этом следующее значение выводится строкой ниже.
| netlib.narod.ru | < Назад | Оглавление | Далее > |