c# 窗体全屏显示的完整范例

全屏窗体的完整方法:

1.隐藏任务栏

2.设置工作区域

3.窗体最大化

此方法通用wince/mobile/ppc,但api声明要修改为coredll.dll的引用。

[c-sharp]  view plain copy
  1. bool fullscreen = false;  
  2. Rectangle rect = new Rectangle();  
  3. private void button4_Click(object sender, EventArgs e)  
  4. {  
  5.     fullscreen = !fullscreen;//循环。点一次全屏,再点还原。  
  6.     SetFullScreen(fullscreen, ref rect);  
  7.     if (fullscreen)  
  8.     {  
  9.         this.WindowState = FormWindowState.Maximized;//全屏  
  10.     }  
  11.     else  
  12.     {  
  13.         this.WindowState = FormWindowState.Normal;//还原  
  14.     }  
  15. }  
  16.   
  17. /// <summary>  
  18. /// 设置全屏或这取消全屏  
  19. /// </summary>  
  20. /// <param name="fullscreen">true:全屏 false:恢复</param>  
  21. /// <param name="rectOld">设置的时候,此参数返回原始尺寸,恢复时用此参数设置恢复</param>  
  22. /// <returns>设置结果</returns>  
  23. public static bool SetFullScreen(bool fullscreen, ref Rectangle rectOld)  
  24. {  
  25.     int Hwnd = 0;  
  26.     Hwnd = FindWindow("Shell_TrayWnd"null);  
  27.     if (Hwnd == 0) return false;  
  28.     if (fullscreen)  
  29.     {  
  30.         ShowWindow(Hwnd, SW_HIDE);  
  31.         Rectangle rectFull = Screen.PrimaryScreen.Bounds;  
  32.         SystemParametersInfo(SPI_GETWORKAREA, 0, ref rectOld, SPIF_UPDATEINIFILE);//get  
  33.         SystemParametersInfo(SPI_SETWORKAREA, 0, ref rectFull, SPIF_UPDATEINIFILE);//set  
  34.     }  
  35.     else  
  36.     {  
  37.         ShowWindow(Hwnd, SW_SHOW);  
  38.         SystemParametersInfo(SPI_SETWORKAREA, 0, ref rectOld, SPIF_UPDATEINIFILE);  
  39.     }  
  40.     return true;  
  41. }  
  42.   
  43. [DllImport("user32.dll", EntryPoint = "ShowWindow")]  
  44. public static extern int ShowWindow(int hwnd, int nCmdShow);  
  45. public const int SW_SHOW = 5; public const int SW_HIDE = 0;  
  46.   
  47. [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")]  
  48. private static extern int SystemParametersInfo(int uAction, int uParam, ref Rectangle lpvParam, int fuWinIni);  
  49. public const int SPIF_UPDATEINIFILE = 0x1;  
  50. public const int SPI_SETWORKAREA = 47;  
  51. public const int SPI_GETWORKAREA = 48;  
  52.   
  53. [DllImport("user32.dll", EntryPoint = "FindWindow")]  
  54. private static extern int FindWindow(string lpClassName, string lpWindowName);  

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值