内容简介:实际上有两个完全不同的问题在这里工作.当然,从功能的角度来看,它们看起来基本相同,但从实现模型的角度来看(就像Windows本身自然会使用的那样)它们是无关的.正如其他人已经回答的那样,您可以通过将其但是,这与Win↑键盘快捷方式无关,后者调用
向上箭头等.
– >我禁用了MaximizeBox和MinimizeBox.
– >我还为我的WinForm设置了MaximumSize和MinimumSize
当我按下Windows向上箭头时,我的胜利形式转移到屏幕的左上角,我的意思是它最大化了.
所以请告诉我任何方法来防止这件事发生……
实际上有两个完全不同的问题在这里工作.当然,从功能的角度来看,它们看起来基本相同,但从实现模型的角度来看(就像Windows本身自然会使用的那样)它们是无关的.
正如其他人已经回答的那样,您可以通过将其
MaximizeBox
属性设置为false来阻止您的表单最大化.这将删除窗体底层窗口上的
WS_MAXIMIZEBOX
style
,这会阻止窗口管理器允许窗口最大化.它禁用窗口标题栏上的最大化框(最小化框和关闭框之间的最大框),禁用窗口/系统菜单上的“最大化”选项,以及最大化我可能忘记的窗口的任何其他方法.
但是,这与Win↑键盘快捷方式无关,后者调用 Aero Snap 与将窗口拖动到位于屏幕边缘的魔术位置相同.窗口管理器,无论是由于错误还是Aero Snap的功能,仍然允许您有效地“最大化”不应最大化的窗口.设置MaximizeBox属性不会影响这一点,因此如果您确实希望阻止用户以这种方式更改窗口大小,则需要在窗口中禁用Aero Snap的效果.
不幸的是,没有方法(至少,据我所知)在每个窗口或每个进程的基础上以编程方式禁用Aero Snap(另请参阅 this related question
).如果用户启用了Aero Snap,您可以假设他们希望该行为和应用程序不应该篡改它.您唯一能做的就是完全禁用调整窗口大小.在WinForms中,您可以通过将
FormBorderStyle
属性设置为以下之一来执行此操作:FormBorderStyle.FixedSingle,FormBorderStyle.Fixed3D或FormBorderStyle.FixedDialog.如果您仍希望以其他方式调整窗口大小,则需要编写代码以手动处理,这不是一项特别容易的任务.
因此,我鼓励您仔细考虑这是否真的有必要.所有其他非最大化窗口只需通过设置MaximizeBox属性(或在其UI框架中执行等效)即可实现此目的,这意味着它们仍然可以通过Aero Snap有效地最大化.如果这适用于其他所有人的窗口,包括那些属于Windows本身的窗口,它可能适合您.
翻译自:https://stackoverflow.com/questions/13381127/preventing-winform-from-being-maximized
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- WPF中窗体最大化问题处理
- 最大化超融合基础设施优势的十大建议
- 详解 CRP:如何最大化提升首屏渲染速度
- WPF中自定义标题栏时窗体最大化处理之WindowChrome
- 信任帮助智能分析释放潜力 让员工最大化利用智能技术提高效率优化见解
- 【ICLR 2019论文】互信息最大化的无监督图神经网络Deep Graph Infomax
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
500 Lines or Less
Amy Brown、Michael DiBernardo / 2016-6-28 / USD 35.00
This book provides you with the chance to study how 26 experienced programmers think when they are building something new. The programs you will read about in this book were all written from scratch t......一起来看看 《500 Lines or Less》 这本书的介绍吧!