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 элементов не потому, что устал печатать. Просто я осознал, что это был не лучший подход и, вероятно, мне придется переписать программу в каком-то другом, более универсальном виде. Хотя и это не так уж плохо для первой попытки (см. рисунок ниже).


Рис. 4.1.

Давайте взглянем на работу этой программы.

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

  у += Font.Height

При этом следующее значение выводится строкой ниже.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz