#region ................窗体闪烁...................

        [DllImport("user32.dll")]
        public static extern bool FlashWindow(IntPtr hWnd, bool bInvert);
        SoundPlayer wavPlayer = new SoundPlayer();

        #endregion


        #region ................窗体置顶...................

        //首先要说明的是与TopMost的效果不同,TopMost是属性定义,而且设置True后,如果不设为Flase则一直置顶,效果很差,
        //以下方法解决了TopMost使用上的不足
        //调用API
        [System.Runtime.InteropServices.DllImport("user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true)]
        public static extern IntPtr GetForegroundWindow(); //获得本窗体的句柄
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SetForegroundWindow")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);//设置此窗体为活动窗体
                                                                   //定义变量,句柄类型
        public IntPtr Handle1;

        #endregion





        #region ..................窗体加载.............

        private void frmMain_Load(object sender, EventArgs e)
        {
            Handle1= this.Handle;
        }

        #endregion


                FlashWindow(this.Handle, true);//闪烁
                SetForegroundWindow(Handle1);//置顶


闪烁和置顶没有关联性,可单独使用!


另:Handle1 不能改,改成别的名,就不能在最顶层显示。





本文转载:CSDN博客