WinForm:文本框未在FormClosing的事件处理程序中更新

时间:2018-03-29 10:21:26

标签: c# winforms formclosing

我的问题很简单:为什么属性TextBox(一个public partial class MainForm : Form { public MainForm() { InitializeComponent(); this.tbInfo.Text = "DEFAULT"; this.FormClosing += (o, e) => { int timeInterval_ms = 1000; for (int i = 0; i<3; ++i) { int sec = (3 - i); this.tbInfo.Text = $"Application will be closed in {sec} seconds"; Thread.Sleep(timeInterval_ms); } }; } } 对象)没有更新? 它仍然设置为“DEFAULT”!

FormClosing

使用调试器我看到当我关闭应用程序时单击“X”按钮(也就是事件http://localhost:8000/products?product_group=network被触发)时,正确调用了事件处理程序。

我做错了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您将UI线程与#!/usr/bin/env stack -- stack --resolver lts-11.2 script --package turtle {-# LANGUAGE OverloadedStrings #-} import Turtle main :: IO () main = echo "Hello!" 暂停,因此不会更新任何内容,等待三秒钟并关闭窗口。

请改用计时器。您还必须阻止关闭Thread.Sleep事件处理程序中的表单,以便计时器实际运行,然后在计时器的事件处理程序经过三秒后关闭窗口。

或许如下:

FormClosing