this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None; /*
FormBorderStyle.FixedSingle
FormBorderStyle.Fixed3D
FormBorderStyle.FixedDialog
FormBorderStyle.Sizable
FormBorderStyle.FixedToolWindow
FormBorderStyle.SizableToolWindow
*/ 窗口在非FormBorderStyle.None 的状态,窗口的标题栏 可以被双击,或者拖拽, 导致窗口被缩小。 如果想实现 无法退出的全屏,就应该用FormBorderStyle.None。
还需要处理键盘事件!
1.tapstop 也Disable, 防止有人tab ===> Enter(顺序也最好整理下)
2.Dle + Alt + Ctrl
3.Alt + Tab
4.Alt + F4
5.最下的任务栏,可以隐藏 窗口Form1的【属性】= >【ShowInTaskbar】 设置【False】 (这样,键盘Alt+ Tab事件,就无法用鼠标右键关闭 )
6.任务管理器无法控制, 只能win10设置【隐藏任务栏】
7.屏蔽 【Win 键】
- Win+R 运行在环境变量的程序(也可以指定目录)
- Win+Q 运行Win10菜单栏,可以搜索和运行 所有软件
- 等等 Tips:如果不用键盘,其实好办。 Console.WriteLine("主显示器完整尺寸:");
Console.WriteLine("宽:" + Screen.PrimaryScreen.Bounds.Width);
Console.WriteLine("高:" + Screen.PrimaryScreen.Bounds.Height); Console.WriteLine("主显示器工作尺寸(排除任务栏、工具栏):");
Console.WriteLine("宽:" + Screen.PrimaryScreen.WorkingArea.Width);
Console.WriteLine("高:" + Screen.PrimaryScreen.WorkingArea.Height); Console.WriteLine("当前显示器完整尺寸:");
Console.WriteLine("宽:" + Screen.GetBounds(this).Width);
Console.WriteLine("高:" + Screen.GetBounds(this).Height); Console.WriteLine("当前显示器工作尺寸(排除任务栏、工具栏):");
Console.WriteLine("宽:" + Screen.GetWorkingArea(this).Width);
Console.WriteLine("高:" + Screen.GetWorkingArea(this).Height);


this.SuspendLayout();
if (m_IsFullScreen)//全屏
{
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.None;
}
else//还原 TODO:还原后的窗体应该与全屏前的大小一致
{
this.WindowState = FormWindowState.Normal;
this.FormBorderStyle = FormBorderStyle.Sizable;
}
this.ResumeLayout(false); ## 挂起布局逻辑与恢复布局逻辑 有时候,需要重新布置整个窗口里的控件的位置布局,如刚刚初始化时就是一个例子。这样在每增加一个有dock等属性的控件时,由于这些布局都是相对性布局,都需要重新计算位置什么的,并实际执行布局。如果一个窗口上有50个控件,这个布局处理就要执行50次,并触发50 * n次的布局有关的事件。【n】 而实际上,在定义布局方案过程中,这些布局是没有必要每个控件定义之后就立即执行布局的,也没有必要处理因此发出的布局事件。 更合理的办法,是在全部定义完所有控件的布局方案之后,才一次性计算布局结果,并一次执行。 于是,就设计了这两个函数。第一个函数用于暂停实际的布局,而第二个函数用于恢复实际布局。 在程序里,如果你需要大规模调整布局方案时,就可以先调用suspendlayout,暂停布局执行,然后定义谁在前,谁在后,谁在上,谁在下,谁填充左,谁填充右。 布置完毕。resumelayout,于是,一次性处理完毕。 ### 如果注释这两个方法的调用,效果上也不会有什么变化,只是在性能上会造成不必要的开销。
### 如果没有太多控件的计算处理,则意义不大! ---------------------
作者:霜之咏叹调
来源:CSDN
原文:https://blog.csdn.net/chuck_lu/article/details/17391999
版权声明:本文为博主原创文章,转载请附上博文链接!

c# 窗口API,以及全屏锁定一些tips的更多相关文章

  1. 【温故而知新-Javascript】窗口效果 (全屏显示窗口、定时关闭窗口)

    1.全屏显示窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  2. h5的api dom全屏展示

    下面是完整的例子,暂不做分析 <!DOCTYPE html> <html> <head> <title> FullScreen API 演示</t ...

  3. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)

    //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWi ...

  4. QT5中全屏显示子窗口和取消全屏的方法

    问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2 ...

  5. Fullscreen API:全屏操作

    function launchFullscreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } ...

  6. win32之全屏窗口

    游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的. #include <windows.h> void RegisterMyClass(); LRESULT ...

  7. Windows中检测当前是否有窗口全屏

    不时看到有人问起如何判断当前是否有窗口正处于全屏状态? 不过, 在解决这个问题之前先来解决一个简单的问题?         什么是全屏?     相当一部分人认为: 窗口如果是最大化的, 那么它就是最 ...

  8. QT 子窗口退出全屏

    m_pWidget代表子窗口, 子窗口显示全屏: m_pWidget->setWindowFlags(Qt::Dialog); m_pWidget->showFullScreen(); 子 ...

  9. 第89天:HTML5中 访问历史、全屏和网页存储API

    一.访问历史 API 通过history对象实现前进.后退和刷新之类的操作 history新增的两个方法history.replaceState()和history.pushState()方法属于HT ...

随机推荐

  1. centos7下安装tomcat7

    1 安装说明安装环境:CentOS-7.0.1611安装方式:源码安装软件:apache-tomcat-7.0.75.tar.gz 下载地址:http://tomcat.apache.org/down ...

  2. 剑指Offer——字符串的排序

    Question 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描 ...

  3. R语言学习笔记(2)

    第二章:创建数据集 一 R中的数据 二 数据的输入 一R中的数据 数据集:通常是由数据构成的一个矩形数组,行表示观测,列表示变量 R可以处理的数据类型:数值型.字符型.逻辑型.复数型(虚数).原生型( ...

  4. 【FINAL】NOI

    我就是复习一下..根本就不是什么题解...谁也看不懂的... NOI2007 社交网络         最短路 货币兑换         斜率优化动态规划 项链工厂         线段树 生成树计数 ...

  5. CSS3的transform属性

    CSS3的一些属性可能比较新,有一些书从国外翻译到国内的时间上会延缓1-2年.所以有一些东西还需要及时整理. 下面说一下CSS3的一个属性:transform 其实字面上的意思已经很明显了就是变化,变 ...

  6. QT paintevent 事件, update()槽函数

    一界面重载函数 使用方法: 1在头文件里定义函数 protected: void paintEvent(QPaintEvent *event); 2 在CPP内直接重载 void ---------- ...

  7. codeforces707C:Pythagorean Triples

    Description Katya studies in a fifth grade. Recently her class studied right triangles and the Pytha ...

  8. Codeforces Round #374 (Div. 2) D. Maxim and Array 线段树+贪心

    D. Maxim and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  9. js简单工厂

    我以计算器为例写一个简单工厂模式,只完成加减乘除4个计算功能,考虑到其他功能方便日后扩展,遵循开放-封闭原则. 简单工厂类图: 先看一下C#的简单工厂是如何实现的: 定义抽象类Operation,加减 ...

  10. [eBook]Inside Microsoft Dynamics AX 2012 R3发布

    最近一本关于Microsoft Dynamics AX 2012开发的书<Inside Microsoft Dynamics AX 2012 R3> 发布. Book Descriptio ...