首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

在C#中怎样让窗体一直占有焦点?解决方案

2012-01-08 
在C#中怎样让窗体一直占有焦点?我想把一个窗体放在最前面,不关掉这个窗体,就切换不到别的程序上,怎么设置

在C#中怎样让窗体一直占有焦点?
我想把一个窗体放在最前面,不关掉这个窗体,就切换不到别的程序上,怎么设置呢?用C#语言,先谢了。

[解决办法]

C# code
using System;using System.Runtime.InteropServices;using System.Threading;using System.Windows.Forms;namespace Class1{    /// <summary>    /// WinAPI 的摘要说明。    /// </summary>    public class SetWindow    {        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]        private static extern IntPtr GetForegroundWindow();   //WINAPI 获取当前活动窗体的句柄        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]        private static extern bool SetForegroundWindow(IntPtr hWnd);   //WINAPI 设置当前活动窗体的句柄        private Thread Th;        private IntPtr MainInt;                 public SetWindow(IntPtr MainIntPrt)        {                        MainInt=MainIntPrt;                      }        /// <summary>        /// 开始线程        /// </summary>        public void Star()        {                        Th=new Thread(new ThreadStart(SetForm));             Th.Start();        }                private void SetForm()        {            while(true)              {                if(MainInt!=GetForegroundWindow())SetForegroundWindow(MainInt);                                                Thread.Sleep(1);              }        }        /// <summary>        /// 关闭线程        /// </summary>        public void Close()        {            Th.Abort();          }    }} 

热点排行