Ответ 1
Используйте свойства Screen.PrimaryScreen.Bounds
и установите this.TopMost = true
. это работает:
int y = Screen.PrimaryScreen.Bounds.Bottom - this.Height;
this.Location = new Point(0, y);
this.TopMost = true;
Я пытаюсь позиционировать форму в нижнем левом углу экрана (на кнопке запуска) У меня есть следующий код, который пытается это сделать, но учитывает только рабочую область экрана - так что форма расположена чуть выше кнопки запуска:
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, но не уверен.
EDIT:
В Windows XP вы можете сделать панель задач за окнами. Перейдите по ссылке: Всегда на главной панели задач
Как указано 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;