VB.NET ClientSize

时间:2017-08-05 21:59:31

标签: vb.net fullscreen screen-resolution

我有一个表单,我希望它是全屏的,但任务栏应该仍然可见。我希望它上面有一个面板,其边界距离边框10px

我尝试了数百种组合,但我根本无法做到这一点。

这是我的代码

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
  // ...
}]);

我想要的是什么:http://i.imgur.com/4BxoBeh.png

我得到了什么:http://i.imgur.com/QynIdaU.png

1 个答案:

答案 0 :(得分:2)

我会采用完全不同的方法,无需计算任何东西:

WindowState = FormWindowState.Maximized
Size = New Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height)
Padding = New Padding(10)

Dim p1 As New Panel()
p1.Location = New Point(0, 0)
p1.Dock = DockStyle.Fill
p1.BackColor = Color.Blue

Controls.Add(p1)

对于占据整个屏幕但未最大化的表单,您的计算是正确的,您可以通过在出现时立即取消最大化来查看。原因是您正在观察构造函数中的表单大小,这有点太早(即使您在其他所有内容之前设置WindowState = FormWindowState.MaximizedClientSize仍然具有值corresponding to non-maximized window,因为窗口尚未创建and shown)。如果您将原始代码移至例如一个Form.Load处理程序会产生相反的结果 - 在表单最大化时看起来正确,如果没有则表示不正确。

填充方法在所有情况下都按预期工作。