У меня самая странная проблема с приложением 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, может быть, это была проблема с драйверами ... Я думаю, что мы никогда не будем сейчас, но, похоже, нет смысла держать этот вопрос здесь Я просто отмечу это для закрытия. Спасибо всем, кто вложил в это свое драгоценное время!