0

我的问题是程序在表单显示之前说话。

这是加载块:

/********************
*                  *
*    Start Game    *
*                  *
********************/
private void Battleship_Load(object sender, EventArgs e)
{
    // Interface housekeeping
    lblStatus.Font = new Font("HandelGotDLig", 18);

    // fill computer board
    game.buildBoards();
    human = game.Human;
    computer = game.Computer;
    shot = game.Initialize(ref human, ref shot);

    //set up displays
    gbComputerHistory.Visible = false;
    gbHumanHistory.Visible = false;
    gbShot.Visible = false;
    lblStatus.Text = "Choose who starts";
    gbStart.Visible = true;

    // display human board
    DisplayBoard(picHuman, human, false);

    // display computer ships
    DisplayBoard(picComputer, computer, false);
    this.Refresh();

    #if SPEECH
        Say("Welcome to BATTLESHIP! Prepare to Lose!");
        Say("Choose who starts first.");
    #endif
}

我怀疑我可以把它埋在油漆事件中,但是我必须跟踪它是否已经说话了。

我不希望每次重新绘制表单时它都会说话。

4

1 回答 1

1

尝试将语音代码添加到Form_Shown事件中。每当向用户显示表单时(当他们实际可以看到它时),就会引发此事件。来自MSDN:

Shown 事件仅在第一次显示表单时引发;随后最小化、最大化、恢复、隐藏、显示或无效和重新绘制不会引发此事件。

于 2012-09-30T22:40:21.310 回答