You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET无边界窗体调整大小保持右侧固定的Anchor锚定用法咨询

结论

无法直接通过设置窗体的Anchor属性实现该效果。

原因说明

  • WinForm中的Anchor属性是子控件相对于父容器的定位规则,仅在「父容器大小发生变化时」生效,用来控制子控件的位置、大小如何跟随父容器调整。
  • 当你修改顶级窗体自身的Size属性时,窗体的父容器是桌面,Anchor属性不会对窗体自身的坐标计算产生任何作用,因此达不到你要的固定右侧、仅调整左侧的效果。

现有实现优化

你手动修改Size+Location的实现逻辑是完全正确的,你还可以通过提前记录窗体右侧坐标的写法优化代码,避免计算逻辑出错,可读性也更高:

Private Sub Form1_Click(sender As Object, e As EventArgs) Handles Me.Click
    ' 先保存调整前的窗体右侧坐标
    Dim originalRight As Integer = Me.Right
    ' 修改宽度
    Me.Width = CInt(Me.Width / 2)
    ' 直接设置左侧坐标,保证右侧位置和调整前完全一致
    Me.Left = originalRight - Me.Width
End Sub

如果是要实现拖拽边框调整大小的场景,也可以沿用同样的逻辑,在拖拽开始时记录初始右侧坐标,拖拽过程中实时计算宽度和左侧坐标即可。


内容的提问来源于stack exchange,提问作者Jarron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 04:24:06