尽管VB.net中的显示大小(小/中/大)发生了变化,但动态调整表单和控件的大小

时间:2014-11-26 08:44:27

标签: vb.net winforms windows-applications

我们已经开发了Windows应用程序,它包含许多表单和控件,默认的小显示尺寸,它工作正常。 但在客户端系统中,显示不一致。因此,当相同的代码以中/大屏幕尺寸运行时,控件重叠

如果有人提供动态重新调整大小/适合形式的解决方案,那将是非常有帮助的。任何显示器的控件(小型100%,中型125%,大型150%)

还有什么方法可以在vb.net中找到显示尺寸(小型100%,中型125%,大型150%)

您可以在控制面板中更改显示尺寸。

2 个答案:

答案 0 :(得分:0)

您可以使用Anchor属性根据其表单大小自动调整控件大小。您可以将控件的任何一侧锚定到表单的那一侧。例如,如果我将图片框的所有四个边都锚定到窗体,则在调整窗体大小时,图片框将模仿窗体的形状。例如,如果仅锚定图片框的顶部和底部,它将使用表单更改高度,但宽度和水平位置将保持不变。

答案 1 :(得分:0)

最后通过做R& D

找到了解决方案

在Form_Load中调用以下函数,如ScaleForm(me)

 Public Sub ScaleForm(WindowsForm As System.Windows.Forms.Form)
        Using g As System.Drawing.Graphics = WindowsForm.CreateGraphics
            Dim sngScaleFactor As Single 
            Dim sngFontFactor As Single = 1
            If g.DpiX > 96 Then
                sngScaleFactor = g.DpiX / 96
                'sngFontFactor = 96 / g.DpiY
            End If
            If WindowsForm.AutoScaleDimensions = WindowsForm.CurrentAutoScaleDimensions Then
                'ucWindowsFormHost.ScaleControl(WindowsForm, sngFontFactor)
                WindowsForm.Scale(sngScaleFactor)
            End If
        End Using
    End Sub