由于线程的原因,我现在的打开文件对话框出现的时候,在任务栏上最小化了
有什么办法,可以让它提到最前边来啊?

解决方案 »

  1.   

    private void 调用的函数(string fileName)
            {
                if (MessageBox.Show("您想打开这个文件吗?", "导出到...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    try
                    {
                        System.Diagnostics.Process process = new System.Diagnostics.Process();
                        process.StartInfo.FileName = fileName;
                        process.StartInfo.Verb = "Open";
                        process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
                        process.Start();
                    }
                    catch
                    {
                        MessageBox.Show(OwnerForm, "您的计算机中未安装Excel,不能打开该文档!", System.Windows.Forms.Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
            }
      

  2.   

    调用的函数() 
    {
    这里边是一个大大地方法啊,里边有个小小的对话框;
    除了这个还有好多别的对话框,这些对话框不好提出来,比如:fileName这个参数就是大方法里边的
    大侠能不能不唠嗑啊 
    弹出一个对话框;//对话框出来就憋屈到任务栏去了 
    }
      

  3.   

    为什么不让我Join线程啊,这方法管用吗?
    那方法太大,我不想再去改动它,改的东西太多了~~~
      

  4.   

    云里,雾里!你在主线程Join的话,,
    主线程执行到末尾才会去执行你的子线程
      

  5.   

    我就想让我最小化的MessageBox搞出来,有那么难吗?
    追加20分
      

  6.   

    MessageBox显示出来的时候,线程已经被阻塞了,其他线程也对此毫不知情。
    你说难不难处理?
      

  7.   

    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            
            private void button1_Click(object sender, EventArgs e)
            {
                System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
                Thread t = new Thread(new ThreadStart(SH));
                t.Start();
               
            }
            private void SH()
            {
                Test a = new Test();
                a.ShowReport();
            }
        }    class Test
        {
            public void ShowReport()
            {
                ShowDialoge();
            }
            private void ShowDialoge()
            {
                MessageBox.Show("1");
            }
        }
      

  8.   

    MessageBox.Show("1"); 
    没有最小化啊
      

  9.   


                if (this.WindowState == FormWindowState.Minimized)
                {
                    this.WindowState = FormWindowState.Normal;
                }
      

  10.   

    副线程创建UI问题,只是,就算Show出来了,也不能阻塞主线程,MessageBox就失去作用了,如果你并不是要显示的模式窗口的话,倒可以。//用主线程来显示对话框
            private void SH()
            {
                this.Invoke((MethodInvoker)(delegate
                {
                    Test a = new Test();
                    a.ShowReport();
                }));
            }