如何在C#中找到运行应用程序的屏幕

如何确定运行应用程序的屏幕?

这应该让你开始。 在窗体上获取一个Button和一个列表框,并将其放在Button_Click中:

listBox1.Items.Clear(); foreach (var screen in Screen.AllScreens) { listBox1.Items.Add(screen); } listBox1.SelectedItem = Screen.FromControl(this); 

答案是在最后一行,记住Form也是一个控件。

System.Windows.Forms.Screen类提供此function。

例如:

屏幕s = Screen.FromPoint(p);

其中p是应用程序某处的Point(在屏幕坐标中)。

嗯,我认为没有一种内置的方法可以实现这一点,但不应该太难确定。 使用Screen类查找所有屏幕,遍历该列表并将其边界与表单的位置进行比较。

这是一些未经测试的代码

 Screen [] screens = Screen.AllScreens; for(index = 0; index < screens.Length; index++) { if (screens[index].Contains(this.Bounds)) return screens[index]; } 

看看这些链接:

  • 多个监视器的MFC程序
  • 多个监视器的原始MSDN文章

这些是在WinAPI中。 可能有.NET多个监视器库/ api调用,但如果没有,使用这些可以编写自己的。