c# 窗口API,以及全屏锁定一些tips
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的更多相关文章
- 【温故而知新-Javascript】窗口效果 (全屏显示窗口、定时关闭窗口)
1.全屏显示窗口 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- h5的api dom全屏展示
下面是完整的例子,暂不做分析 <!DOCTYPE html> <html> <head> <title> FullScreen API 演示</t ...
- Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)
//Qt主窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWi ...
- QT5中全屏显示子窗口和取消全屏的方法
问题描述:用QT5做了个MDI多窗体应用程序,想把子窗体全屏显示,用网上的方法,但总是遇到问题. 网上的解决方法原文在这:http://www.cnblogs.com/Rick-w/archive/2 ...
- Fullscreen API:全屏操作
function launchFullscreen(element) { if(element.requestFullscreen) { element.requestFullscreen(); } ...
- win32之全屏窗口
游戏开发中经常使用会让游戏以全屏窗口的状态运行,下面一个例子就是来实现这个效果的. #include <windows.h> void RegisterMyClass(); LRESULT ...
- Windows中检测当前是否有窗口全屏
不时看到有人问起如何判断当前是否有窗口正处于全屏状态? 不过, 在解决这个问题之前先来解决一个简单的问题? 什么是全屏? 相当一部分人认为: 窗口如果是最大化的, 那么它就是最 ...
- QT 子窗口退出全屏
m_pWidget代表子窗口, 子窗口显示全屏: m_pWidget->setWindowFlags(Qt::Dialog); m_pWidget->showFullScreen(); 子 ...
- 第89天:HTML5中 访问历史、全屏和网页存储API
一.访问历史 API 通过history对象实现前进.后退和刷新之类的操作 history新增的两个方法history.replaceState()和history.pushState()方法属于HT ...
随机推荐
- springmvc时间类型值传输映射
背景:springmvc4.3.2+spring4.3.2+mybatis3.4.1 当前台传递的参数有时间类型时,封装的vo对象也有对应的时间类型与之对象, 但是如果此时用对象去接收后台会报错,类型 ...
- 发现程序bug思路
大家有没有遇到过项目,程序出现个bug,但花了好久(真的是a long long time啊)才发现引发这个问题的原因,心想原来就这个原因导致的啊,要是早想到就好了! 其实我们确实的是方法,希望我的抛 ...
- 企业环境中部署 ActiveMQ
这一章讲述了怎么配置 ActiveMQ 集群.
- DH04-开放封闭原则
模式简介 定义:一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 无论模块是多么封闭,都会存在一些无法对之封闭的变化.对设计的模块预估可能发生变化种类,然后构造抽象来隔离变化. 解决:创建抽象 ...
- 请求被中止: 未能创建 SSL/TLS 安全通道,以及解决方法,即:Could not create SSL/TLS secure channel
C# 访问https请求被中止: 未能创建 SSL/TLS 安全通道(Could not create SSL/TLS secure channel) 以及 X509Certificate2 temp ...
- Highcharts中更新series的5种方法
用Highcharts画图时,经常需要更新所画的图表,最常见的就是改变数据以更新图表.在Highcarts中,数据对应的参数是series.这儿就以图1的柱状图为例,列举如何更新series的5种方法 ...
- LeetCode OJ:Populating Next Right Pointers in Each Node II(指出每一个节点的下一个右侧节点II)
Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...
- LeetCode OJ:Symmetric Tree(对称的树)
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- BZOJ - 2618 凸多边形 (半平面交)
题意:求n个凸多边形的交面积. 半平面交模板题. #include<bits/stdc++.h> using namespace std; typedef long long ll; ty ...
- 以前的实验博客地址,以前使用csdn
实验一木马分析(隐藏分析)实验 http://blog.csdn.net/qq_30600405/article/details/78360599 实验二木马分析(控制分析)实验和实验三冰河木马实验 ...