2012-07-16 104 views
3

我试图在执行操作时向用户显示MESSAGE消息。该消息不会显示任何按钮。只是一个消息(文本),也许是背景图片。如何显示C#中没有任何按钮的消息框

的问题如下:

  • 的MessageBox似乎并不成为很好的控制(因为按钮,它阻止正在运行的进程)。
  • Form.ShowDialog()也会阻止正在运行的进程。我不知道该怎么办。
  • 我想显示消息,运行我的过程,并在过程完成时处理消息。

如何在C#中实现此目的?

回答

2

创建自定义表单,并写出自己的行为

6

创建一个简单的形式与消息(或公开公共属性能够更改消息,或消息参数的构造函数传递给它的)和show表格使用this Show overload。然后禁用(整个)原始(所有者)表单(或者只是禁用不想访问的控件)。

所以,在你的 “主” 的形式做到这一点:

Form f = new MessageForm(); 
f.Show(this);   //Make sure we're the owner 
this.Enabled = false; //Disable ourselves 
//Do processing here 
this.Enabled = true; //We're done, enable ourselves 
f.Close();   //Dispose message form 

此外,可以考虑使用BackgroundWorker

0

创建一个自定义窗体将其设置为最小样式等。确保它知道什么时候完成了进程,比如说通过传入进程引用并检查它。

0

你可以做到这一点的一种方法是创建一个worker类,当它完成时引发一个事件。

在一个新的thead执行工人类,所以它运行它的背景。

使用一种方法创建模态窗体,将其作为“已完成”事件的事件处理程序关闭它。 这样,UI仍然可以工作并响应,一旦工作线程完成,表单就会关闭。