我尝试让计时器每隔2秒显示一行,而不是一次将所有文本添加到文本框中,我想让用户有机会阅读对话框,而不是一次将所有文本添加到文本框中。这就是我到目前为止拥有的代码,但它似乎不能输出文本。
private void OaksSpeakingTimer_Tick(object sender, EventArgs e)
{
//Starting Oaks basic speaking timer
OaksSpeakingTimer.Start();
ProfessorTxt.Text += "LLLLLLL";
OaksSpeakingTimer.Stop();
OaksSpeakingTimer.Start();
ProfessorTxt.Text += "\rrrrrrrrrrrrrrrrrrrrrrrrrrr.";
OaksSpeakingTimer.Stop();
OaksSpeakingTimer.Start();
ProfessorTxt.Text += "\nttttttttttttttttttttttttttttttttttttttttt!";
OaksSpeakingTimer.Stop();
}
发布于 2018-09-27 07:16:45
您可以将所有想要的文本放在一个Queue
中,并在计时器触发时将下一个字符串出队:
private Queue<string> messages = new Queue<string>
{
"LLLLLLL",
"\rrrrrrrrrrrrrrrrrrrrrrrrrrr.",
"\nttttttttttttttttttttttttttttttttttttttttt!"
};
private void OaksSpeakingTimer_Tick(object sender, EventArgs e)
{
if (messages.Count == 0)
{
OaksSpeakingTimer.Stop();
return;
}
var message = messages.Dequeue();
ProfessorTxt.Text += message;
}
https://stackoverflow.com/questions/52527036
复制相似问题