我已经为用户的答案设置了一个文本框,一旦他们给出答案,我希望文本框被禁用,并出现一个标签,说明是正确的还是不正确的。但目前只能输入一个数字,然后就会出现正确或错误的标签。正如您在下面看到的,答案是10。因此,只要输入1,就会显示不正确的内容,并且文本框被禁用。
private void txt_2a_TextChanged(object sender, EventArgs e)
{
if (txt_2a.Text == "10")
{
lblcorrectQ2_1.Visible = true;
txt_2a.Enabled = false;
}
else
{
lblincorrectQ2_1.Visible = true;
txt_2a.Enabled = false;
}
}
发布于 2017-03-02 01:14:39
如果你不想让用户离开这个框,你可以实现一种机制,在第一次执行TextChanged
事件时创建一个Timer,并告诉它在时间到后(比如1秒)执行一个动作。
如果发生另一个TextChanged
事件,您将检查是否已经创建了Timer
。如果有,则调用timer.Stop(); timer.Start();
来重置计时器。当用户最终停止键入1秒时,就可以进行验证了。
请注意,由于验证正在修改ui,而计时器在不同的线程上运行,因此您可能需要将该线程编组回UI线程。这可以通过像这样的https://stackoverflow.com/a/661706/193282或https://stackoverflow.com/a/661662/193282来简单地完成
https://stackoverflow.com/questions/42544505
复制相似问题