2009-02-14 47 views

回答

6

这应该让你开始。找一个按钮和一个窗体上的列表框,并把这个在Button_Click:

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

答案就在最后一行,请记住形式是控制了。

+1

+1的回答比我简单 – Bob 2009-02-14 20:55:33

0

嗯,我不认为有一个内置的方式来得到这个,但它不应该太难确定。使用Screen类查找所有屏幕,遍历该列表并将其边界与表单的位置进行比较。

下面是一些未经测试的代码

Screen [] screens = Screen.AllScreens; 

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

screens.Contains() - 你是什么后,如果是这样你不需要通过他们看... – cgreeno 2009-02-14 20:55:43

1

的System.Windows.Forms.Screen类提供此functionaility。

例如:

屏幕S = Screen.FromPoint(P);

其中p是应用程序某处的某个点(以屏幕坐标表示)。

相关问题