Форма Windows не может быть изменена, когда на левом дополнительном мониторе - PullRequest
4 голосов
/ 06 сентября 2010

У меня самая странная проблема с приложением Windows, написанным на c #.

Хотя в этом нет абсолютно ничего особенного, главное окно прекрасно работает на основном мониторе и на любом дополнительном мониторе, если последний настроен так, чтобы стоять справа от основного монитора. Тем не менее, когда я перенастраиваю дополнительный экран для размещения на левой стороне моего основного монитора, я (и другие) больше не могу изменить размер формы. Указатель мыши НЕ превращается в «NW-SE-стрелки», а нажатие и перетаскивание края не влияет на изменение размера окна.

Похоже, что некоторые дополнительные эксперименты появляются только тогда, когда для AutoSizeMode формы установлено значение GrowAndShrink!?

Это какая-то ошибка или я неверно истолковываю свойство?

Чтобы воспроизвести эту проблему, вы должны

  • начать новый проект WinForms
  • Добавить StatusStrip в конец формы
  • Запустить проект (отладка / любой процессор в моем случае)
  • Перетащите форму на дополнительный монитор, который стоит слева от основного монитора.

PS: кажется, что когда я удаляю StatusStrip, я вообще не могу изменить размер формы, поэтому я предполагаю, что это некоторый побочный эффект / ошибка в объекте StatusStrip ...

Добавление флажка со следующим кодом позволяет понять, что проблема связана со свойством AutoSizeMode

private void chkAutoGrowAndShrink_CheckedChanged(object sender, EventArgs e) 
{ 
     this.AutoSizeMode = chkAutoGrowAndShrink.Checked ? 
             AutoSizeMode.GrowAndShrink : 
             System.Windows.Forms.AutoSizeMode.GrowOnly; 
}

UPDATE:

Поскольку я недавно переключил машины, я теперь переделал тест на этом новом ноутбуке с использованием VS2010 и держу, и проблема больше не возникает. Я до сих пор не уверен, откуда это взялось, может быть, со временем это было исправлено в .NET, может быть, это была проблема с драйверами ... Я думаю, что мы никогда не будем сейчас, но, похоже, нет смысла держать этот вопрос здесь Я просто отмечу это для закрытия. Спасибо всем, кто вложил в это свое драгоценное время!

Ответы [ 2 ]

0 голосов
/ 15 декабря 2011

Кажется, эта проблема была связана с аппаратным обеспечением / драйвером / конкретной версией .NET / ??? связанные с. Закрытие вопроса как такового.

0 голосов
/ 06 сентября 2010

Если вы не можете изменить размер с помощью StatusStrip не в форме, то здесь происходит еще одна проблема. Все формы должны иметь изменяемый размер, если вы не установите для свойства FormBorderStyle фиксированный стиль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...