【发布时间】:2013-05-17 16:15:33
【问题描述】:
我创建了一个非常基本的控制台应用程序,它在后台执行一些代码。在执行此操作时,它会生成一个自定义消息框(从技术上讲,它是一个 Windows 窗体),它只显示一个标签,告诉用户请稍候。问题是标签永远不会显示(它只是一个大白框,标签应该在哪里)。我尝试创建一个动态标签并将其放在那里,但这也不起作用。
表格显示方式如下:
public void DoSomething()
{
MyForm form = new MyForm();
form.Show();
try {
// Execute other logic
} finally { form.Close(); }
}
我猜这与调用 Show() 有关,但我并不肯定。我输入日志,看到它正在通过构造函数,生成动态标签(通过 Controls.Add(myLabel) 添加到表单中),但它仍然没有显示任何标签。
【问题讨论】:
-
发生这种情况时您是否阻塞了 UI 线程?这是我的猜测。
-
我可以问一下你的
MyForm类是什么样的吗? -
@JonSkeet 他在控制台应用程序中执行此操作 - 我认为没有“UI 线程”:)
-
@ReedCopsey:我错过了。如果在没有 UI 线程时调用 Show,不确定 会发生什么...
-
@JonSkeet 什么都没有发生(视觉) - 它“发布”消息,但它们从未得到处理。
标签: c#