Как показать форму на текущем экране в C #? - PullRequest
2 голосов
/ 19 июня 2010

Я хочу показать новую форму в том же окне, откуда она была вызвана. Я знаю способ показать эту форму на PrimaryScreen или виртуальном экране с помощью кода, подобного приведенному ниже:

MyForm.Location = Screen.PrimaryScreen.Bounds.Location;

Но я хочу показать это на текущем экране. Есть ли способ узнать и показать его на текущем экране?

Ответы [ 5 ]

5 голосов
/ 16 апреля 2013

Я сделал что-то вроде этого, чтобы показать мою форму по центру текущего экрана:

var screen = Screen.FromPoint(Cursor.Position);
myForm.StartPosition = FormStartPosition.Manual;
myForm.Left = screen.Bounds.Left + screen.Bounds.Width / 2 - myForm.Width / 2;
myForm.Top = screen.Bounds.Top + screen.Bounds.Height / 2 - myForm.Height / 2;
2 голосов
/ 19 июня 2010

Вы можете использовать ту же технику, но вместо основного экрана захватите экран, используя Screen.FromPoint и Cursor.Position :

Screen screen = Screen.FromPoint(Cursor.Position);
MyForm.Location = screen.Bounds.Location;
1 голос
/ 21 января 2016
  1. Щелкните форму в режиме разработки.
  2. Измените свойство StartPosition на CenterScreen.

Это должно открыть форму на активном экране.См. this для получения дополнительных значений StartPosition.

1 голос
/ 30 марта 2011

Звучит так, как будто вы не устанавливаете StartPosition на Manual.

0 голосов
/ 15 декабря 2015

Если у вас уже есть родительская форма и вы хотите открыть новую форму на том же экране, дайте методу ShowDialog ссылку на родительскую форму: newForm.ShowDialog(this); Без параметра владельца ("this") новая форма может открывать на главном экране, даже если родительская форма находится на другом экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...