怎样让自己的应用程序失去焦点?
就是让当前的程序失去焦点,然后系统就会把焦点放到下一个应用程序上.我的主要目的是要让焦点落到别的程序上,让系统自己激活别的程序.

解决方案 »

  1.   

    引发一下LostFocus事件
    this.OnLostFocus
      

  2.   

    1.this.OnLostFocus只是引发LostFocus事件,但是焦点不会离开。
    2.使用代码激活其他应用程序:我查的MSDN里的介绍是说没有可用来激活另一个应用程序的托管方法,可以用本机的Windows方法(API)(如 FindWindow 和 SetForegroundWindow)来强制聚焦到其他应用程序上。可是我现在碰到的问题是:使用FindWindow获得每个窗体的句柄需要两个参数(窗体的类名,窗体的标题文本),这两个参数只要有一个不为空就可以,可我怎么能够在我的程序里知道现在系统运行了几个程序,打开了几个窗体,就更别说窗体上的标题了。所以我想到这个地方就卡住了,所以请问大家还有什么方法继续下去。或是有什么别的思路也可以。
    ====CSDN 小助手 V2.0 2005年10月16日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
    下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
    拒绝日货。
      

  3.   

    触发LostFocus事件,然后调用相应事件处理程序。
      

  4.   

    this.WindowState = FormWindowState.Minimized;
    窗体最小化后就失去焦点了不然你可以
    const int SW_SHOW = 5;
    const int SW_HIDE = 0;
    [System.Runtime.InteropServices.DllImport("User32.dll",EntryPoint="FindWindow")] 
    private static extern int FindWindow(string lpClassName, string lpWindowName); 
    [System.Runtime.InteropServices.DllImport("user32.dll")] 
    static extern bool ShowWindow(int hWnd,int nCmdShow); 
    private void ShowTaskbar(bool visible)
    {
    int hTaskBarWindow;
    hTaskBarWindow=FindWindow("Shell_TrayWnd",null);
    if (hTaskBarWindow!=0)
    if (visible) 
    ShowWindow(hTaskBarWindow, SW_SHOW);
    else
    ShowWindow(hTaskBarWindow, SW_HIDE);
    }
    确定TaskBar显示出来, 然后再用SetForegroundWindow把焦点给TaskBar