我在MS Access中有一个拆分形式,它有许多长组合框。这些基于具有结构 [ID]、[描述符] 的查找表。组合框绑定到 ID 列,并且表单上显示 [描述符] 字段。我设计了具有组合框列宽属性的窗体,以"0in.; 20in."
这就是问题开始的地方。值得注意的是,我们的办公室使用相当宽的显示器,可以扩展到 Access 设置的最大外形尺寸 22 英寸以上。
在打开和调整大小(如果展开)时,窗体会将列宽恢复为"0in.; 1in.;"
。这会在 1" 处切断下拉列表中的文本,列的其余部分只是空白。如果窗体缩小,列将恢复为正确的大小。
我已经尝试了许多方法来解决问题,但无济于事,此时我只是用头撞键盘。 这是我得到的最接近的,我调整大小和打开它,但它仍然不起作用。
Private Sub Form_Resize()
Dim frm As Form
Dim ctl As Control
Dim iTwip As Long
iTwip = 1440
Set frm = Me.Form
For Each ctl In frm
If ctl.ControlType = acComboBox Then
If ctl.Width > (20 * iTwip) Then
ctl.ColumnWidths = "0in.; 20in."
Else
ctl.ColumnWidths = "0in.; " & Format(ctl.Width / iTwip, "##") & "in."
End If
End If
Next ctl
Set ctl = Nothing
End Sub
我似乎尝试了列宽、列(i).宽度my_cbobox.宽度的所有组合,一旦表单展开,一切似乎都会恢复。任何帮助将不胜感激!
根据我的测试,您无法在调整大小事件中设置控件宽度和颜色等操作。 代码似乎有效,但控件设置不会更改。 当表单打开时,我确实设法设置了组合框的背景颜色,但我认为这只是一个错误。
您可以在调整大小事件中执行简单的副作用。 例如,我能够打印以调试一个组合框的大小,该组合框的锚点设置为跨底部拉伸。
顺便说一下,您仍然可以在运行一次的奇异事件中调整控件宽度等,例如表单加载和表单打开,因此您可以确保一切正确开始。
如今,窗体上的控件在调整窗体大小时的行为方式是在设计时使用布局声明的。 选择控件后,您可以在功能区上的"排列"选项卡下编辑控件布局.
除非选择,否则布局是不可见的,并且会影响许多控件,因此我会在编辑一个控件之前保存。
对于最终答案,您可以根据需要拥有任意数量的布局,例如将要拉伸的每个组合框调整大小调整在其自己的布局中,并将锚定设置为在顶部拉伸,