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 | < Назад | Оглавление | Далее > |