Как узнать на каком экране сейчас запущено приложение?

193
29 сентября 2017, 15:39

Есть screensaver, и при запуске он открывает две копии приложения на количество мониторов. Мне необходимо чтоб некоторые функции на одном из мониторов не выполнялись - дублируются.

Как узнать количество мониторов я знаю - Screen.AllScreens. Как узнать какой основной тоже .Primary. А вот как узнать на каком сейчас запущенна данная форма?

Есть идея, что искать по координатам окна в каждом мониторе, но может есть способ легче?

Answer 1

Для WinForms сделал небольшой пример (на основе поста) - форма определяет, на главном она экране или нет

class F : Form
{
    public F()
    {
        var bt = new Button();
        bt.Text = "press me";
        bt.Click += (sender, args) => {
            var screen = Screen.FromControl(this);
            var primary = Screen.PrimaryScreen;
            if (Screen.Equals(primary, screen)) bt.Text = "primary";
            else  bt.Text = "secondary";
        };
        this.Controls.Add(bt);
    }
}
READ ALSO
Что логировать в методе

Что логировать в методе

У меня есть некий класс-сервисЯ хотел бы обвешать его логами на все случаи жизни

180
Передача данных по Bluetooth или же Wi-Fi

Передача данных по Bluetooth или же Wi-Fi

Всем доброго времени суток! Помогите пожалуйстаМне надо создать программу для проведения викторин по английскому

245
Обработка исключающих ситуации

Обработка исключающих ситуации

Хотел задать вопросЯ прочитал что такое try-catch и using, Но не понял в чем разница

224
Десериализация string в List<string>

Десериализация string в List<string>

Вопрос заключается в следующем 1) Есть класс PivotBlock, который содержит среди всех полей поле ColumnField

155