Как узнать, на каком экране запущено приложение в C # - PullRequest
4 голосов
/ 14 февраля 2009

Как определить, на каком экране запущено мое приложение?

Ответы [ 4 ]

6 голосов
/ 14 февраля 2009

Это должно помочь вам начать. Получите кнопку и список в форме и поместите их в Button_Click:

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

Ответ находится в последней строке, помните, что форма тоже является элементом управления.

1 голос
/ 14 февраля 2009

Класс System.Windows.Forms.Screen предоставляет эту функцию.

Например:

Экран s = Screen.FromPoint (p);

где p - это точка где-то в вашем приложении (в экранных координатах).

0 голосов
/ 14 февраля 2009

Взгляните на эти ссылки:

Это в WinAPI. Может быть .NET несколько вызовов библиотек / вызовов API, но если нет, то с их помощью вы можете написать свои собственные.

0 голосов
/ 14 февраля 2009

Хм, я не думаю, что есть способ, чтобы получить это, но это не должно быть слишком сложно определить. Используйте класс Screen , чтобы найти все экраны, пролистать этот список и сравнить его границы с местоположением формы.

Вот некоторый непроверенный код

Screen [] screens = Screen.AllScreens;

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