如何确定我的应用程序在哪个屏幕上运行?
Brad
问问题
7437 次
5 回答
6
这应该让你开始。在 Form 上获取一个 Button 和一个列表框,并将其放在 Button_Click 中:
listBox1.Items.Clear();
foreach (var screen in Screen.AllScreens)
{
listBox1.Items.Add(screen);
}
listBox1.SelectedItem = Screen.FromControl(this);
答案在最后一行,记住 Form 也是 Control。
于 2009-02-14T20:53:03.957 回答
1
System.Windows.Forms.Screen 类提供此功能。
例如:
屏幕 s = Screen.FromPoint(p);
其中 p 是应用程序上某处的点(在屏幕坐标中)。
于 2009-02-14T20:52:57.093 回答
0
嗯,我不认为有一个内置的方法可以得到这个,但它不应该太难确定。使用Screen类查找所有屏幕,遍历该列表并将其边界与表单的位置进行比较。
这是一些未经测试的代码
Screen [] screens = Screen.AllScreens;
for(index = 0; index < screens.Length; index++) {
if (screens[index].Contains(this.Bounds))
return screens[index];
}
于 2009-02-14T20:51:56.270 回答
0
于 2009-02-14T20:54:45.747 回答
0
好吧,很多年过去了,它是公认答案的派生词,但这对我有用。此方法是 Form 类的成员。该screen
变量包含调用该方法时窗体左上角所在屏幕的属性。
private void ClsFormFoo_Load(object sender, EventArgs e)
{
Screen screen = Screen.FromControl(this);
}
于 2019-07-23T14:41:03.670 回答