HorizontalAnchor 在 Access 中给出了错误的值
HorizontalAnchor gives wrong value in Access
问题:Control.HorizontalAnchor 或 Control.VerticalAnchor 得到的值超出了可接受的范围。
在IDEwindow中:
Debug.Print Btn.VerticalAnchor --> 结果:4864
立即window:
?Btn.VerticalAnchor --> 0
同一条线。相同的代码。
我很难过。请帮忙。
L.E.: 显然这个值在某种程度上被扭曲了
If Btn.HorizontalAnchor = acHorizontalAnchorRight Then
我遇到了几乎相同的问题 运行 Microsoft Access 2013 x64 15.0.5349 (VBA 7.01).
对我来说,控件 HorizontalAnchor
属性 包含预期的 AcHorizontalAnchor
枚举值加上 25344
.
所以如果控件 HorizontalAnchor
配置为 acHorizontalAnchorLeft
(0) 它包含 25344
.
对于 acHorizontalAnchorRight
(1) 它包含 25345
.
对于 acHorizontalAnchorBoth
(2),它包含 25346
.
比较我的值 25344
和你的值 4864
我可以看到它们的二进制表示都在高字节中包含额外的设置位:
Decimal
Binary
4864
1 0011 0000 0000
25344
110 0011 0000 0000
所以我使用的解决方法是忽略 HorizontalAnchor 的高字节:
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorLeft Then _
Debug.Print "-> Left"
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorRight Then _
Debug.Print "-> Right"
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorBoth Then _
Debug.Print "-> Both"
应该与VerticalAnchor
类似。
问题:Control.HorizontalAnchor 或 Control.VerticalAnchor 得到的值超出了可接受的范围。
在IDEwindow中: Debug.Print Btn.VerticalAnchor --> 结果:4864
立即window: ?Btn.VerticalAnchor --> 0
同一条线。相同的代码。
我很难过。请帮忙。
L.E.: 显然这个值在某种程度上被扭曲了
If Btn.HorizontalAnchor = acHorizontalAnchorRight Then
我遇到了几乎相同的问题 运行 Microsoft Access 2013 x64 15.0.5349 (VBA 7.01).
对我来说,控件 HorizontalAnchor
属性 包含预期的 AcHorizontalAnchor
枚举值加上 25344
.
所以如果控件 HorizontalAnchor
配置为 acHorizontalAnchorLeft
(0) 它包含 25344
.
对于 acHorizontalAnchorRight
(1) 它包含 25345
.
对于 acHorizontalAnchorBoth
(2),它包含 25346
.
比较我的值 25344
和你的值 4864
我可以看到它们的二进制表示都在高字节中包含额外的设置位:
Decimal | Binary |
---|---|
4864 | 1 0011 0000 0000 |
25344 | 110 0011 0000 0000 |
所以我使用的解决方法是忽略 HorizontalAnchor 的高字节:
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorLeft Then _
Debug.Print "-> Left"
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorRight Then _
Debug.Print "-> Right"
If (xControl.HorizontalAnchor And &HFF) = _
AcHorizontalAnchor.acHorizontalAnchorBoth Then _
Debug.Print "-> Both"
应该与VerticalAnchor
类似。