码迷,mamicode.com
首页 > Windows程序 > 详细

c# 窗口API,以及全屏锁定一些tips

时间:2019-03-02 10:30:38      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:fixed   ctr   normal   效果   标题   dock   width   还需要   his   




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

标签:fixed   ctr   normal   效果   标题   dock   width   还需要   his   

原文地址:https://www.cnblogs.com/scotth/p/10459883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!