我在這裏用c#編寫的Windows應用程序遇到了最奇怪的問題。Windows窗體在左輔助顯示器上不能調整大小
雖然沒有什麼特別的地方,但當主顯示器被配置爲站在主顯示器的右側時,主顯示器和任何輔助顯示器上的主窗口都能很好地工作。但是,當我重新配置輔助屏幕放置在我的主監視器的左側側時,我(和其他人)不再可以更改表單的大小。鼠標指針不會變成'NW-SE-arrows',也不會拖動邊緣對窗口大小做出任何改變。
做一些額外的實驗這似乎只有當我有AutoSizeMode的形式設置爲GrowAndShrink!時才表面?
這是一種錯誤還是我誤解了屬性?
要重現這個問題,你應該
- 開始一個新的WinForms項目
- 添加StatusStrip中的形式
- 運行項目(調試/在我的情況下,任何CPU) 底部
- 將窗體拖動到顯示器的左側,顯示器顯示爲:
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中得到了修復,也許這是一個驅動程序問題......我想我們現在永遠都不會這樣,但似乎沒有什麼用處來保留這個問題,我會標記它關閉。 謝謝給所有誰把他們的一些寶貴的時間,但!
您是否正在對錶單的大小/位置或包含的控件進行任何計算?主窗口左側的屏幕將具有負座標,並且很容易假設它們在計算中始終爲非負值。 – Richard 2010-09-06 17:39:37
不在我原來的代碼中,也不在'再現例子'中。但我同意這可能是導致這種情況的「本地」對象內部的一些行。我希望其他人也能夠重現它,或者實際上不會,在向MS發送錯誤報告之前,這兩者都會很有趣。 – deroby 2010-09-06 17:47:25
如果你可以重新創建這個只有標準控件,並沒有代碼來操縱大小/位置,那麼我會建議打開一個錯誤http://connect.microsoft.com/ – Richard 2010-09-07 08:32:27