我用SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0");点击了一个外部程序的确定按钮,外部程序弹出一个对话框,我的程序就没有反应了(界面上的任何控件都不能使用),必须关闭弹出的这个对话框,程序才能继续! 这个是怎么回事呢??我的程序怎样才不受这个弹出对话框的影响?

解决方案 »

  1.   

    开个线程得了
    Thread t = new ThreadStar(new a());
    priavte void btn_click(even`````````)
    {
        t.star();
    }
    public void a()
    {
        form.SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0");
    }
      

  2.   

    PostMessage又是怎么用的嘛??菜鸟哈,别扔砖哟!
      

  3.   

    Thread t = new ThreadStar(new a()); 
    实例一个线程,调用方法a()priavte void btn_click(even`````````) 

        t.start(); 
    } 按纽里面调用线程的start()方法...好久没做C# START 既然写错
    public void a() 

        form.SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0"); 
    }
    在这里申明一个方法 该方法执行SendMessage(EdithWnd, WM_CLICK, (IntPtr)0, "0"); 
      

  4.   

    试了一下aying996 提供的代码,编译错误,提示:a()是方法,却被当作类型来使用
      

  5.   

    啊  啊哈哈  把挂号去掉Thread t = new ThreadStar(new a);  
      

  6.   

    做了一段时间的J2EE快把C#忘光了 闷
      

  7.   

    呵呵,提示:错误 1 new 表达式要求在类型后有 () 或 [] 
      

  8.   

    经过一番测试,aying996说的代码应该是这样:
    Thread t = new Thread(new ThreadStart(a));
      

  9.   

    Thread t=new Thread(new ThreadStart(a)); 
    倒啊,看了下帮助  ```````````
      

  10.   

    有的,记得有一个等待sleep,建议你去查一下帮助,里面提供了很多方法.
      

  11.   

    t.sleep(500)//暂停500毫秒
    t.Abort()//结束线程!
    这两个对你比较有用..
      

  12.   

    我用的t.Join(3000);好像也起到了效果终止线程我用的t.Abort();不知道可不可以
      

  13.   

    问题解决,我用的aying996提供的开新线程的方法,感谢aying996,又学到一点东东!结贴,希望其它朋友也有收获!谢谢