如何使用c#windows应用程序设置windows屏幕分辨率

如何使用c#windows应用程序设置windows屏幕分辨率,c#,C#,我用c#winforms做了一个项目。我想将屏幕的分辨率设置为1680 x 1050, 当应用程序在任何pc上运行时。如何操作?我建议您不要执行此类操作。屏幕分辨率由用户设置,不应自动更改。这就像在用户不知道的情况下更改颜色方案、声音方案或任何其他基于用户的首选项一样糟糕,更不用说让您的程序去做了。至少显示一个对话框,让用户选择要执行的操作。 话虽如此,.正如其他人已经提到的那样,您不应该自动更改分辨率,因为用户会将其设置为他喜欢的特定分辨率(或者他的硬件最适合) 因此,与其更改分辨率,不如更改

我用c#winforms做了一个项目。我想将屏幕的分辨率设置为1680 x 1050,
当应用程序在任何pc上运行时。如何操作?

我建议您不要执行此类操作。屏幕分辨率由用户设置,不应自动更改。这就像在用户不知道的情况下更改颜色方案、声音方案或任何其他基于用户的首选项一样糟糕,更不用说让您的程序去做了。至少显示一个对话框,让用户选择要执行的操作。

话虽如此,.

正如其他人已经提到的那样,您不应该自动更改分辨率,因为用户会将其设置为他喜欢的特定分辨率(或者他的硬件最适合)

因此,与其更改分辨率,不如更改应用程序。使用,和/或。设置控件的和属性,并考虑设置应用程序中每个控件的和

这样,应用程序可以在不同分辨率之间自动缩放,用户可以选择自己喜欢的分辨率


最后但并非最不重要的一点是,你的应用程序不仅要考虑到用户选择的解决方案,还应该关心所选择的DPI设置。(站点592)中描述了您应该关注哪一个。

他并没有说他的应用程序将改变其他系统的分辨率。你不应该改变别人电脑上的屏幕分辨率;但是,用户可能需要通过单独的实用程序更改自己的分辨率(出于不同的原因)。这就是我现在的情况,所以我必须用C#编写一个简单的实用程序,通过使用InteropServices来实现这一点。调用ChangeDisplaySettings。声明如下:

[DllImport("user32.dll")]
public static extern int ChangeDisplaySettings(
ref DEVMODE devMode, int flags);

那么,如果我的屏幕不支持该分辨率,会发生什么情况呢?可能与刚才投了反对票的屏幕重复。别误会我的意思,你提供的答案信息丰富,但你没有回答这个问题。就我个人而言,我想知道这一点是为了一个我不打算分发的个人项目,所以其他人的显示器是否支持该解决方案不是我关心的问题(我确实意识到原来的海报上确实写着“在任何pc上运行”,但对我来说,正确的答案应该给出上述建议,但仍然回答了问题)@达克希波:那样的话,不要否决投票。简单地问一个新问题,参考这个问题,说出你的情况有什么不同。