我在c#winforms中有一个小对话游戏,需要暂停程序流程直到用户按下按钮。
目前这是生成标签的代码:
Label displayText;
public void createDisplayText ( string message, bool continueOnButton = true )
{
displayText = new Label()
{
Location = new Point(300, 30),
Font = new Font("Consolas", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))),
ForeColor = Color.White,
BackColor = Color.Black,
Size = new Size(img.Width - 70, img.Height - 50),
Text = message
};
if ( continueOnButton )
textKeyPress = true;
Controls.Add(displayText);
}
public void hideDisplayText ()
{
if ( displayText != null )
displayText.Dispose();
}
在Form_KeyDown方法中,我输入了以下内容:
if (textKeyPress)
{
if (e.KeyCode == Keys.Space)
hideDisplayBox();
}
问题:
如何在程序代码中输入此代码,以便程序等待隐藏文本并然后恢复。
呼叫(如果可能)不应该比
createDisplayText ( "Some sort of message" );
我怎么能实现这个目标?
答案 0 :(得分:2)
为UI和程序流使用不同的线程。如果需要你想要的东西,把程序流线程置于睡眠状态,然后在隐藏消息后使用UI调用唤醒它,或者只是给它一个计时器。