2009-12-18 2 views
0

У меня есть простая заставка, которую я написал, которая была развернута на всех клиентских ПК нашей компании.Заставка Windows Multi Monitor Задача

Поскольку большинство наших ПК имеют два монитора, я позаботился о том, чтобы заставка работала на обоих дисплеях.

Это работает отлично, однако на некоторых системах, где основной экран был заменен (на левый монитор), заставка работает только на левом (основном) экране.

Код нарушения приведен ниже. Может ли кто-нибудь увидеть что-нибудь, что я сделал неправильно, или лучший способ справиться с этим?

Для информации, контекст «этого», это форма скринсейвера.

// Make form full screen and on top of all other forms 

int minY = 0; 
int maxY = 0; 
int maxX = 0; 
int minX = 0; 

foreach (Screen screen in Screen.AllScreens) 
{ 
    // Find the bounds of all screens attached to the system 

    if (screen.Bounds.Left < minX) 
     minX = screen.Bounds.Left; 

    if (screen.Bounds.Width > maxX) 
     maxX = screen.Bounds.Width; 

    if (screen.Bounds.Bottom < minY) 
     minY = screen.Bounds.Bottom; 

    if (screen.Bounds.Height > maxY) 
     maxY = screen.Bounds.Height; 
} 

// Set the location and size of the form, so that it 
// fills the bounds of all screens attached to the system 

Location = new Point(minX, minY); 
Height = maxY - minY; 
Width = maxX - minX; 
Cursor.Hide(); 
TopMost = true; 

ответ

3

Вы хотите проверить screen.Bounds.Right, а не screen.Bounds.Width.

Аналогично для высоты.

Смежные вопросы