我想将表单放置在屏幕的左上角。
我努力了this.Location = new Point(0,0)
但窗口位于 (7,0) - 窗口顶部位于屏幕顶部,但左侧距离屏幕边缘 7 个像素。
我创建了新的 WinForms 应用程序进行测试,并仅添加了以下代码:
private void Form1_Load(object sender, EventArgs e)
{
Point p = new Point(0, 0);
WindowState = FormWindowState.Maximized;
Debug.WriteLine("\nMaximized");
Debug.WriteLine("Location: " + Location);
Debug.WriteLine("Size: " + Size);
Debug.WriteLine("PointToScreen(0,0): " + PointToScreen(p));
WindowState = FormWindowState.Normal;
Location = p;
Debug.WriteLine("\nNormal");
Debug.WriteLine("Location: " + Location);
Debug.WriteLine("Size: " + Size);
Debug.WriteLine("PointToScreen(0,0): " + PointToScreen(p));
Debug.Write("\nScreen.PrimaryScreen.WorkingArea: ");
Debug.WriteLine(Screen.PrimaryScreen.WorkingArea);
}
输出是:
Maximized
Location: {X=-8,Y=-8}
Size: {Width=1936, Height=1056}
PointToScreen(0,0): {X=0,Y=23}
Normal
Location: {X=0,Y=0}
Size: {Width=300, Height=300}
PointToScreen(0,0): {X=8,Y=31}
Screen.PrimaryScreen.WorkingArea: {X=0,Y=0,Width=1920,Height=1040}
Why Location = new Point(0,0)
位置不是在 (0,0) 上吗?
这是由于我的系统上的某些原因造成的吗?我有Win10和VS2015。任务栏在底部,我的桌面左侧没有任何东西。
为了将其定位在 (0,0) 上,我实际上必须将其定位在 (-7,0) 上。此外,报告的最大化表单宽度比屏幕宽度大 16 像素。我知道由于窗口边缘、标题栏等原因,客户区域大小和表单大小之间存在差异,但事实并非如此。当表单最大化时,没有左右边缘(客户区宽度 = 桌面宽度),但表单宽度为 +16px。表格 4 条边各有 +8px,但 Y 位置还可以。为什么 Y 位置可以,而 X 位置不行?