我正在尝试将一个表单放在屏幕的左下角(在开始按钮上)我有以下代码尝试这样做,但只考虑了屏幕的工作区域 - 所以表单位于开始按钮的正上方:
int x = Screen.PrimaryScreen.WorkingArea.Left + this.Width;
int y = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height;
this.Location = new Point(x, y);
下面是一个演示/屏幕,以进一步展示我想要做的事情:
答案 0 :(得分:10)
使用Screen.PrimaryScreen.Bounds
属性并设置this.TopMost = true
。这有效:
int y = Screen.PrimaryScreen.Bounds.Bottom - this.Height;
this.Location = new Point(0, y);
this.TopMost = true;
答案 1 :(得分:4)
工作区通常排除任何任务栏,停靠窗口和停靠工具栏。
使用Screen.PrimaryScreen.Bounds
可以获得完整的屏幕高度和宽度。
示例代码如下:
public Form1()
{
InitializeComponent();
Rectangle r = Screen.PrimaryScreen.WorkingArea;
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, Screen.PrimaryScreen.Bounds.Height - this.Height);
this.TopMost = true;
}
这很可能会显示在任务栏下方,因为通常任务栏默认设置在顶部。我记得有一个选项可以在Windows XP中关闭该选项,但不确定。
编辑:
在Windows XP中,您可以将任务栏放在窗口后面。请点击链接:Always on top task bar
正如Ria指出的那样,将this.TopMost
设置为真有效并且是更好的选择。
答案 2 :(得分:0)
您可以尝试使用此代码
Rectangle workingArea = Screen.GetWorkingArea(this);
this.Location = new Point(0,
workingArea.Bottom - Size.Height);
答案 3 :(得分:0)
Ria 's answer是正确的,但没有添加任务栏高度 如果您想要显示图片中的内容,则应使用以下代码:
int nTaskBarHeight = Screen.PrimaryScreen.Bounds.Bottom -
Screen.PrimaryScreen.WorkingArea.Bottom;
Rectangle workingArea = Screen.GetWorkingArea(this);
this.Location = new Point(0, workingArea.Bottom - Size.Height + nTaskBarHeight);
this.TopMost = true;