12

我正在尝试在屏幕的左下角(在开始按钮上)放置一个表单就在开始按钮上方:

int x = Screen.PrimaryScreen.WorkingArea.Left + this.Width;
int y = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height;
this.Location = new Point(x, y);

下面是一个演示/屏幕,以进一步演示我正在尝试做的事情:

[演示屏幕](http://i.stack.imgur.com/9mTjj.png)

4

4 回答 4

11

使用Screen.PrimaryScreen.Bounds属性并设置this.TopMost = true. 这有效:

int y = Screen.PrimaryScreen.Bounds.Bottom - this.Height;
this.Location = new Point(0, y);
this.TopMost = true;
于 2012-09-09T10:25:12.747 回答
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 中,您可以使任务栏位于 windows 后面。点击链接:始终在顶部任务栏

正如 Ria 所指出的,将其设置this.TopMost为 true 是一个更好的选择。

于 2012-09-09T10:23:28.137 回答
0

您可以尝试使用此代码

Rectangle workingArea = Screen.GetWorkingArea(this);
this.Location = new Point(0, 
                          workingArea.Bottom - Size.Height);
于 2012-09-09T10:19:40.860 回答
0

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;
于 2012-09-09T11:20:40.500 回答