1

我有 VB 应用程序,它在加载时将系统的分辨率从 1280*1024 更改为 1024*768 。当我停止应用程序时,它将分辨率恢复为定义为的正常分辨率NormalRes = Screen.Width / Screen.TwipsPerPixelX。但是当我第二次同时这样做时,它并没有恢复分辨率。

我检查了代码,返回的分辨率是 1024(horizo​​ntal=1280)*1024,因此它无法更改分辨率并保持为 1024*768。

让我烦恼的是,当正常分辨率定义为Screen.Width/Screen.TwipsPerPixelX.

为什么它给出了不同的值(而不是 1280 它给出了 1024)。是因为当我第一次更改分辨率时,它的值会发生变化吗?
什么情况下的值可以有不同的值??

寻求你的帮助,萨蒂什·库马尔

4

1 回答 1

1

与其尝试重新计算屏幕分辨率,不如在更改分辨率之前保存分辨率,然后在关闭应用程序时恢复旧分辨率。

例子:

Public Class Form1
    Dim oldSize As Size

    Public Sub Form_Load() Handles Form1.Load
        oldSize = Screen.PrimaryScreen.Bounds.Size
    End Sub

    Public Sub Form_Closed() Handles Form1.Closed
        SetScreenResolution(oldSize)
    End Sub

    Public Sub SetScreenResolution(size As Size)
        ' write your code to change the screen size here
    End Sub
End Class
于 2012-10-17T12:32:11.013 回答