C# winform 最大化情况下无法跨窗口拖动问题

本文描述了在Winform中,当设置了FormBorderStyle属性后,本地屏幕上的窗口在最大化状态下无法自动退出并进行拖动的问题。作者发现这是由于FormBorderStyle阻止了窗口大小的重新拖拽,而这一行为意外地影响了窗口的正常操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

本地有两块屏幕,在winform窗口最大化情况下希望能够跨窗口进行拖动,发现无法拖动,必须手动退出最大化,才能按住窗口进行拖动。

观察其他windows应用,统一的行为是自动退出最大化,再进行拖动,也就是出问题的窗口的区别是无法自动退出最大化。

创建了一个新的窗口,发现全新的窗口是支持该功能的,说明是本地代码的修改导致了此问题。

逐个对窗口的属性做比较,最后发现是FormBorderStyle这个属性的原因,只要将FormBorderStyle设置成fix相关的属性,则均无法自动退出最大化。

官网信息

Form.FormBorderStyle Property (System.Windows.Forms) | Microsoft Learn

该属性从字面意思和效果上,其实是阻值用户对整个窗口进行大小重新拖拽的,当时设置fix也是希望阻值用户的此类行为,但是没想到对跨窗口拖动的行为产生了影响,并且实际影响的是窗口退出最大化的行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值