Отображение дочернего окна

Отображение дочернего окна

Программа должна получить имя игрока при достижении им высокого результата. Для этого создается копия формы HighScore. Программа должна создать форму при старте и хранить ссылку на нее. Экземпляр формы HighScore создается при старте основной программы, вызывая конструктор и передавая ссылку на родительскую форму, в нашем случае на саму себя, как показано в листинге 11.58.

Листинг 11.58

/// <summary>

/// Форма для ввода имени игрока с лучшим результатом.

/// </summary>

private HighScore highScore;

// Создаем форму для лучших результатов

highScore = new HighScore(this);

В этом коде ключевое слово this является ссылкой на текущий экземпляр основной формы, который должен быть закрыт при открытии формы highScore и восстановлен при закрытии формы highScore. Код для отображения формы highScore приведен в листинге 11.59.

Листинг 11.59

if (scoreValue > highScoreValue) {

 timer1.Enabled=false;

 // Показываем форму для лучших результатов

 highScore.ShowDialog();

 timer1.Enabled=true;

}

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