Screen.width / Screen.TwipsperpixelX-相同的不同值

时间:2012-10-17 12:00:52

标签: vb.net screen screen-resolution

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

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

我的错误是将正常分辨率定义为Screen.Width/Screen.TwipsPerPixelX

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

寻求你的帮助, Satish kumar

1 个答案:

答案 0 :(得分: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