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

Отображение формы

Следующая версия этой программы — ShowForm — исправляет этот недостаток.

ShowForm.cs

  //------------------------------------------
  // ShowForm.cs (C) 2001 by Charles Petzold
  //------------------------------------------
  using System.Windows.Forms;

  class ShowForm
  {
      public static void Main()
      {
          Form form = new Form();

          form.Show();
      }
  }

В этой версии есть инструкция using, сокращающая количество ввода с клавиатуры. В противном случае в обоих местах, где встречается Form с заглавной буквы, перед Form пришлось бы поставить System.Windows.Forms. Слово form со строчной буквы означает экземпляр класса Form, создаваемый программой. Можно использовать любое другое имя. (Но при программировании на языках, нечувствительных к регистру, например Visual Basic, использовать form нельзя, так как компилятор не сможет отличить это имя от имени класса Form; для экземпляров Form придется выбирать другие имена.)

Show — один из двух методов, унаследованных Form от Control и влияющих на видимость формы (или элемента управления):


Методы класса Control (выборочно)



Метод Описание

void Show() Делает элемент управления видимым
void Hide() делает элемент управления невидимым


Вместо:

  form.Show();

можно написать:

  form.Visible = true;

Show является методом. Visible выглядит как поле, но на самом деле это свойство:


Свойства класса Control (выборочно)



Тип Свойство Доступ

bool Visible Чтение/запись


Программа ShowForm позволяет увидеть форму, но для этого приходится внимательно следить за ней! Сразу после показа форма исчезает. Если ваш компьютер намного быстрее моего, вы можете вообще не увидеть форму.

Такое поведение дает один из возможных ответов на поставленный мной вопрос о различиях между консольным приложением и Windows-приложением: когда программа с интерфейсом командной строки завершает работу, ее вывод остается на консоли, а когда завершает работу Windows-приложение, оно заметает свои следы, уничтожая окно и всю отображенную информацию.

Можно ли замедлить программу, чтобы лучше ее рассмотреть? Знакомы ли вы с функцией sleep? Если вы тщательно изучите пространство имен System.Threading, то обнаружите класс Thread и статический метод этого класса, приостанавливающий выполнение программы (точнее, потока программы) на заданное время, указанное в миллисекундах.

Следующая программа дважды вызывает метод Sleep (с параметрами, указывающими задержку на 2,5 секунды) и позволяет лучше рассмотреть форму.

ShowFormAndSleep.cs

  //--------------------------------------------------
  // ShowFormAndSleep.cs (C) 2001 by Charles Petzold
  //--------------------------------------------------
  using System.Threading;
  using System.Windows.Forms;

  class ShowFormAndSleep
  {
      public static void Main()
      {
          Form form = new Form();

          form.Show();

          Thread.Sleep(2500);

          form.Text = "My First Form";

          Thread.Sleep(2500);
      }
  }

Кроме того, в этой версии присваивается значение свойству Text:


Свойства класса Control (выборочно)



Тип Свойство Доступ

String Text Чтение/запись


Text — очень важное свойство. Для кнопок свойство Text содержит текст, показываемый на кнопке; для полей редактирования — текст в поле. Для форм Text — это текст, появляющийся в заголовке формы. При запуске программы вы в течение 2,5 секунд видите форму с пустым заголовком, затем появляется заголовок, и еще через 2,5 секунды форма исчезает.

Мы, безусловно, добились прогресса, но боюсь, что метод Sleep — не самый подходящий способ фиксации формы на экране.


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

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