【问题标题】:creating resolution independent winform,set resolution for C# winform, get the screen resolution on which the winform is running创建与分辨率无关的winform,为C#winform设置分辨率,获取winform运行的屏幕分辨率
【发布时间】:2011-04-23 06:32:10
【问题描述】:

我做了一个1366x768分辨率的应用程序,这是我笔记本电脑的当前分辨率,作为初学者,我不关心分辨率问题。

当我使用该应用程序并在分辨率较低的 PC 上执行它时,一切都搞砸了。表格要去别的地方,它的大部分部分被隐藏了。

所以,请帮助我如何使我的winform分辨率独立,或者如何获取当前屏幕分辨率并将其设置到我的winform中,以便它相应地改变自己。

【问题讨论】:

    标签: c# .net winforms resolution screen-resolution


    【解决方案1】:

    房产

    Screen.PrimaryScreen.WorkingArea
    

    对于表单大小和定位非常有用。 例如这段代码:

            this.Width = Screen.PrimaryScreen.WorkingArea.Width/2;
            this.Height = Screen.PrimaryScreen.WorkingArea.Height/2;
            this.Top = (Screen.PrimaryScreen.WorkingArea.Top + Screen.PrimaryScreen.WorkingArea.Height)/4;
            this.Left = (Screen.PrimaryScreen.WorkingArea.Left + Screen.PrimaryScreen.WorkingArea.Width)/4;
    

    (Screen 类是 System.Windows.Forms 命名空间的成员)

    将执行它的窗体放在屏幕中间,并将其大小调整为屏幕的一半。

    WorkingArea 变量用于在计算屏幕大小时排除桌面上的任务栏和其他停靠项等内容。

    希望这会有所帮助。

    【讨论】:

    • 当您可以通过将表单“StartPosition”属性设置为 CenterScreen 并将 WindowsState 设置为 Maximized 来完成完全相同的事情时,为什么还要添加此代码?
    • @ScopeCreep,你确定 OP 想要一个最大化的形式吗?我的代码只占屏幕的一部分
    【解决方案2】:

    请看这里:http://social.msdn.microsoft.com/forums/en-US/vbgeneral/thread/1be40692-80fa-42ba-b316-9fe13a935b4f/ 和这里:http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/d5f2cd8d-d24d-4574-ba3a-96e22e3d1b56/

    一般方法是从您将使用的最小分辨率开始。然后您可以扩大您的表单(使用适当的停靠和锚点)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      相关资源
      最近更新 更多