如何在C#的当前屏幕上显示表单?

我想在调用它的同一窗口中显示一个新表单。 我知道一种在PrimaryScreen或虚拟屏幕上显示此表单的方法,代码类似如下:

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

但我想在当前屏幕上显示它。 有没有办法找出并在当前屏幕上显示它?

我做了类似这样的事情来显示我的表格以当前屏幕为中心:

 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; 

您可以使用相同的技术,但不使用PrimaryScreen,而是使用Screen.FromPoint和Cursor.Position抓取屏幕:

 Screen screen = Screen.FromPoint(Cursor.Position); MyForm.Location = screen.Bounds.Location; 

听起来好像你没有将StartPosition设置为Manual。

  1. 在设计模式下单击表单。
  2. 将StartPosition属性更改为CenterScreen。

这应该打开活动屏幕上的表单。 有关StartPosition的更多值,请参阅此处。

如果您已有父表单并想在同一屏幕上打开一个新表单,请为ShowDialog方法提供对父表单的引用: newForm.ShowDialog(this); 如果没有所有者参数(“ this ”),即使您的父表单在另一个屏幕上,新表单也可能在主屏幕上打开。