消息框显示太早- c#

本文关键字:太早 显示 消息 | 更新日期: 2023-09-27 18:17:45

我刚刚开始c#编程的世界,在我的代码中遇到了一个小故障,导致设计被破坏。

由于某些原因,当我尝试更改文本框中的文本时,直到显示消息框(位于更改文本的代码下面)才会在视觉上改变文本。我正在为WP7编程,如果这改变了什么的话。点击按钮就可以运行。

下面是我的代码:
 private void Draw()
    {
        Random random = new Random((int)DateTime.Now.Ticks);
        number[0] = random.Next(0, 9);
        number[1] = random.Next(0, 9);
        number[2] = random.Next(0, 9);
            no1.Text = number[0].ToString();
            no2.Text = number[1].ToString();
            no3.Text = number[2].ToString();
        MessageBox.show("Example message");
    }

消息框显示太早- c#

正如Russell Troywest所指出的,你的代码是在UI线程上执行的,这个线程负责更新图形界面。因此,在函数退出之前,文本框的可视化表示不会更新。

一个简单的解决方案是延迟消息框的执行:

this.Dispatcher.BeginInvoke(() => MessageBox.show("Example message"));

这样,您的draw方法将退出而不显示消息框,然后UI线程将在刷新界面后立即显示它。