2
A
回答
8
由於通常的原因,當你在MSDN Library中看到這個註釋時,有的方式太多的可能性,你會使用這個錯誤。在代碼中只有一個,您可以調用此方法並獲得預期結果。
這是由窗體的Size屬性造成的問題。當然需要知道如何居中。太多的程序員將它們在屬性窗口中看到的值視爲福音,他們會認爲窗口在用戶的機器上也具有這樣的大小。這種情況非常罕見。
第一個問題是用戶的喜好,他們可以改變標題文本和控制按鈕的大小。或者他們會啓用Aero(或不啓用),這會使窗口變胖。這可能會導致大小偏移量微小,實際窗口的大小在運行時會與您在「屬性」窗口中看到的大小不同。 Winforms已經提供了一些東西,它實際上並不存儲設計的Size屬性,它存儲了ClientSize屬性。直到創建窗口,CreateHandle()方法運行時纔會知道實際大小。因此,您不能在窗體的構造函數中調用CenterToScreen(),也不能在Show()調用之前調用它,這爲時尚早。
第二個問題是窗體的AutoScaleMode屬性。最近尤其重要的是,許多用戶不再以默認設置96 DPI運行他們的機器。自Vista以來,特別容易改變。這將導致窗口的尺寸大大減小。直到窗口重新調整後才能知道實際大小,並在運行OnLoad()方法時完成。
稍後調用它會產生視覺工件,用戶實際上可以看到窗口在屏幕上移動。所以只有一個地方,表單的OnLoad()方法/ Load事件處理程序。但它已經發生在那裏,這是StartPosition屬性設置爲CenterScreen時應用的位置。所以沒有其他的理由可以自己來打電話了。它應該是一種私人方法,當然後來很難解決這種設計錯誤。
相關問題
- 1. 爲什麼要使用Ext.dispatch而不是直接調用控制器代碼?
- 2. 直接從代碼
- 3. 爲什麼在javascript中直接在你的代碼中使用大數字?
- 4. 爲什麼不能使用此代碼?
- 5. 爲什麼不能使用此代碼?
- 6. 爲什麼不直接從git或bzr存儲庫部署代碼?
- 7. 爲什麼不接受我的代碼?
- 8. 爲什麼不能直接調用res.json?
- 9. 爲什麼不從mkdir返回代碼?
- 10. 爲什麼在Redux中直接使用「this.props.dispatch」而不是「store.dispatch」?
- 11. 爲什麼不能直接在JavaScript中使用.push()返回值?
- 12. 爲什麼我們不能直接在Angular中使用console.log?
- 13. 爲什麼不直接在Equals()中使用對象屬性?
- 14. 爲什麼不直接在Swift中使用靜態變量?
- 15. 爲什麼使用folder.close()而不是直接使用store.close()?
- 16. 爲什麼我的代碼直接跳到其他地方?
- 17. 爲什麼在我的代碼中接收_post不起作用
- 18. 什麼是使用代碼連接
- 19. 爲什麼代碼從ClassB調用Get()?
- 20. 爲什麼HBase使用墓碑標記?爲什麼不直接刪除它
- 21. 爲什麼不直接從jsp調用服務類
- 22. 爲什麼在DataTemplate中使用UserControl比直接使用xaml慢?
- 23. 爲什麼使用協議,不直接調用方法?
- 24. 爲什麼在代碼中使用樣式類時JavaScript代碼不起作用?
- 25. 爲什麼使用SSL直接從Apache調用SSL時cURL不起作用
- 26. 爲什麼不把值直接
- 27. 爲什麼不init:stop()直接終止?
- 28. 爲什麼javascript代碼不起作用?
- 29. 爲什麼代碼不起作用?
- 30. 爲什麼'代碼不夠通用'?
爲什麼不自己嘗試一下,看看? – Rahul 2014-10-18 22:11:44
我正在使用它,它工作正常。我很好奇微軟爲什麼不推薦使用它。 :) – ctomek 2014-10-18 22:12:56
請參閱:http://stackoverflow.com/a/6837499/2202894 – 2014-10-18 22:14:46