1. 程式人生 > >c#顯示隱藏的窗體和托盤中的程式

c#顯示隱藏的窗體和托盤中的程式

將程式最小化到托盤已經是最常用的操作,但在C#中憑藉 Form1.Visible=true; 抑或是Form1.TopMost=true; 只能將窗體顯示在工作列中,而不能將窗體直接顯示給使用者,這無疑是糟糕的使用者體驗。為了實現上述目的,我們需要藉助於win32函式:

        #region win32函式
       
        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string lpSpecifiedClassName, string lpWindowName);

       
        [DllImport("user32.dll ", SetLastError = true)]
        public static extern void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);

       
        [DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
        public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
        public const int SW_RESTORE = 9;
        public static IntPtr formhwnd;
        #endregion

IntPtr frm = Form1.Handle; //得到窗體控制代碼
ShowWindow(frm, 9); //顯示窗體
SwitchToThisWindow(frm, true); //切換到窗體