【问题标题】:Best way to resize form/controls according to resolution?根据分辨率调整表单/控件大小的最佳方法?
【发布时间】:2018-10-11 23:23:21
【问题描述】:

我是个白痴,在 1280X1024 分辨率的 17 英寸显示器上设计了我的 VB 应用程序,完全忘记了它在另一台机器上的用途。这可能是一个很长的镜头,但是有没有一种简单的方法来获得用户显示器的分辨率并相应地重新调整控件和表单的大小?

提前致谢。

【问题讨论】:

    标签: .net vb.net visual-studio


    【解决方案1】:

    您可以将所有控件放在 TableLayoutPanel 中,正确锚定所有内容,并将窗口大小调整为适合显示分辨率的大小。如果您将整个面板锚定在顶部、底部、左侧和右侧,并在单元格内锚定单个文本框、组合框等,控件将随窗口调整大小。

    需要一些工作来弄清楚您希望如何调整大小和移动,但不是那么多。

    从 TLiebe 的方法中获取数字后,您可以计算出要占用窗口的屏幕比例。

    【讨论】:

      【解决方案2】:

      您可以通过以下方式获取当前屏幕尺寸:

      Dim screenHeight As Integer = My.Computer.Screen.Bounds.Height
      Dim screenWidth As Integer = My.Computer.Screen.Bounds.Width
      

      至于调整大小,如果您将控件锚定到表单,您应该能够调整表单的大小以适应上面获得的屏幕尺寸。

      【讨论】:

      • 不,最好使用My.Computer.Screen.WorkingArea。 WorkingArea 不包括将在您的应用程序前面的任务栏、停靠的工具栏等。 msdn.microsoft.com/en-us/library/…
      • 好吧,我试一试。谢谢!
      • 嗨,我们可以在哪里使用此代码?我已经尝试过工作簿打开事件,但没有成功
      【解决方案3】:

      您可以将表单中的控件定位到顶部、底部、左侧或右侧。这使得设计表单成为可能,因此可以在不弄乱所有控件的情况下更改大小。您可以在设计模式下执行此操作,设置每个控件的锚属性。

      表单有一个最小(和最大)尺寸属性,您可以使用它来防止它变得太小而无法控制它的控件。您可以使用 Screen.PrimaryScreen.Bounds 或 My.Computer.Screen.Bounds 来获取屏幕大小并相应地设置表单大小,或者如果屏幕低于特定大小,则可能最大化表单。

      【讨论】:

        【解决方案4】:

        了解锚。

        创建一个空白表单。

        将表单的大小设置为 MyComputer.screen.bounds.area 的宽度和高度。

        将窗体的 WindowSize 设置为最大值。

        在中间放置一个面板控件。

        在面板中放置 4 个选项按钮,每个 2 行。

        减小面板的大小,使选项按钮刚好适合。

        将面板锚定到表单的所有 4 个侧面。

        启动应用程序并选择最小化按钮,现在可以收缩和拉伸表单的边。

        从任意一侧开始收缩窗体,并注意面板的侧面如何随着收缩方向移动。

        将面板的锚点更改为顶部和左侧。

        如果您从顶部或左侧收缩,面板最终会向另一边滚动。

        如果您从底部或右侧收缩,表单的边缘会向面板滚动。

        【讨论】:

          【解决方案5】:

          这是我用来在加载时调整表单大小的代码

          Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
              Me.Height = My.Computer.Screen.WorkingArea.Height
              MyBase.OnLoad(e)
          End Sub
          

          【讨论】:

            猜你喜欢
            • 2014-06-15
            • 2011-02-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-07
            • 1970-01-01
            相关资源
            最近更新 更多