我已经搜索并尝试了答案。我有代码,但我不确定为什么它不起作用。我正在尝试将表单的背景色从绿色改回白色。我相信我是正确的,但它不显示第一种颜色,只显示最后一种颜色。
if (PassBox1.Text == PassBox2.Text)
{
this.BackColor = Color.FromArgb(0, 255, 0);
// voice.Speak("Correct ", SpeechVoiceSpeakFlags.SVSFDefault);
this.BackColor = Color.FromArgb(192,192,192);
}
最佳答案
当此代码运行且背景色设置为 (0,255,0) 后跟一个阻塞操作 voice.speak 时,这不会给 ui 刷新机会,一旦语音讲话完成,背景色就会变为(192...) 在 ui 发生变化以显示其他颜色之前。
在这种情况下,如果您创建一个允许您闪烁颜色的子类文本框,您会更高兴。你可以使用这篇文章中的一些想法 https://stackoverflow.com/a/4147406/2903863
关于c# - 根据答案更改表单颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46749173/