2

您如何将子窗体的高度和宽度设置为 ms access 2010 中可用屏幕空间的百分比?特别是,我在上传到此文件共享 url 的数据库中有一个标记为“Tab A”的嵌套导航子表单:http: //jmp.sh/v/HGctZ4Ru74vDAjzN43Wq

在文件共享链接的数据库中,具有不同屏幕分辨率设置的不同用户的导航子窗体带有选项卡 A 以各种不同的尺寸显示,包括一些子窗体在可用屏幕空间中所占比例非常小。导航子窗体的详细信息部分的高度设置为 5.5542 英寸。有没有办法设置它,使高度是子窗体顶部下方可用空间的 90%?我还希望标记为“Tab 1”的子表单的宽度为左边缘右侧的 90%。在 java 中,这很容易通过偏移量和计算宽度来实现。我似乎无法找到有关如何在 access 2010 中进行相对尺寸的说明。

谷歌搜索该主题似乎没有产生任何解决方案,我想通过在高度设置上增加一两英寸来避免搞砸所有其他用户的屏幕。

4

1 回答 1

6

在 Access 表单中,所有百分比或相对大小都必须由您计算。我承认在 Access 中调整表单和元素的大小有点死板和笨拙,但对于许多桌面应用程序 GUI 环境来说都是如此。我认为 .NET WPF 已尝试解决此问题,但这与 MS Access 无关。

我通常最终会使用这样的东西。此代码属于主窗体。这就是我经常调整大小的地方。

Private Sub Form_Resize()
    On Error Resume Next
    Me.subform1.Width = Me.WindowWidth - 390
    'or if you want to account for the form's left property
    'Me.subform1.Width = Me.WindowWidth - (Me.subform1.Left + 100)
End Sub

编辑1:

在回答您的评论时,390 和 100 是缇。虽然 Access 中的设计时使用英寸,但运行时属性必须使用缇来设置。

我搞砸了一段时间,无法得到任何我认为完全准确的东西。我在下面发布对我来说最合乎逻辑的代码,但是我不知道如何在 MS Access 中计算表单大小的来龙去脉。看来我可能遗漏了一些东西,因为下面的代码不会产生准确的结果。我发现通过增加我的边距并减少子窗体高度计算的百分比/小数,我能够得到一些看起来相对接近但如果你需要精确和准确的数字则不能令人满意的东西。

Private Sub Form_Resize()
    On Error Resume Next
    Const RMARGIN = 0
    Const BMARGIN = 0
    Me.subform1.Left = Round(Me.WindowWidth * 0.1) - RMARGIN
    Me.subform1.Top = Round(Me.WindowHeight * 0.1) - BMARGIN
    Me.subform1.Width = Round(Me.WindowWidth * 0.9) - (Me.subform1.Left + RMARGIN)
    Me.subform1.Height = Round(Me.WindowHeight * 0.9) - (Me.subform1.Top + BMARGIN)
End Sub
于 2013-11-15T02:19:55.767 回答