我正在尝试在屏幕的左下角(在开始按钮上)放置一个表单就在开始按钮上方:
int x = Screen.PrimaryScreen.WorkingArea.Left + this.Width;
int y = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height;
this.Location = new Point(x, y);
下面是一个演示/屏幕,以进一步演示我正在尝试做的事情:
使用Screen.PrimaryScreen.Bounds
属性并设置this.TopMost = true
. 这有效:
int y = Screen.PrimaryScreen.Bounds.Bottom - this.Height;
this.Location = new Point(0, y);
this.TopMost = true;
工作区通常不包括任何任务栏、停靠的窗口和停靠的工具栏。使用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 中,您可以使任务栏位于 windows 后面。点击链接:始终在顶部任务栏
正如 Ria 所指出的,将其设置this.TopMost
为 true 是一个更好的选择。
您可以尝试使用此代码
Rectangle workingArea = Screen.GetWorkingArea(this);
this.Location = new Point(0,
workingArea.Bottom - Size.Height);
Ria 的答案是正确的,但它没有添加任务栏高度。
如果您想要显示图像中的确切内容,则应使用以下代码:
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;