- 當Visual Studio Designer嘗試渲染WinForms類時,將調用哪些方法?
- 當Winforms類從另一個WinForms類繼承時會發生什麼?
1
A
回答
0
是我的發現:
- 如果您在具有YourClass.Designer.cs文件的VS Designer中打開表單,則:
- 在YourClass.Designer.cs定義的屬性/字段將被new'ed
- 了 「的InitializeComponent()」 方法將被調用
注:奇怪的是,你的構造WILL不是被調用,你可以用類似下面的東西來證明這一點(注意,設計者可以用下面的代碼):
public class YourClass ... {
public YourClass() {
throw new Exception("Ha (1)!");
InitializeComponent();
throw new Exception("Ha (2)!");
}
}
- 如果類沒有SomeControl.Designer.cs文件,或者它是您在VS Designer中打開的類中的組件,那麼將調用該組件的構造函數。你可以再次用上面的例子來測試它。
0
當Winforms類從另一個WinForms類繼承時會發生什麼?
在過去,我使用WinForm繼承來強制窗體之間的標準佈局 - 排序主窗體。在設計模式中,添加到父窗體的任何控件都將顯示在子窗體中。您不能直接從子窗體設計器編輯父窗體。
1
簡而言之,即使存在窗體繼承,設計者也會調用窗體的構造函數和所有涉及的方法。
如果你想避免自己的組件/控件一些代碼,你可以這樣嘗試這裏後發現設計模式是上,
相關問題
- 1. Visual Studio Designer無法加載
- 2. Visual Studio包調試時不調用Visual Studio包Initialize方法
- 3. 調試Visual Studio Designer錯誤的好方法
- 4. Visual Studio:實時方法調用跟蹤?
- 5. Visual Studio Dataset Designer Null
- 6. 哪些方法在內部調用GetHashCode?
- 7. Visual Studio不使用SDL呈現圖像
- 8. Visual Studio ReportViewer Designer版本
- 9. Visual Studio 2010 WPF Designer規模
- 10. Visual Studio Designer附加屬性
- 11. Visual Studio 2008 Designer File Bug?
- 12. Visual Studio Designer底部窗格
- 13. Visual Studio XAML Designer錯誤
- 14. 使用PowerShell調用Visual Studio方法
- 15. 在Visual Studio 2010中安裝了哪些版本的ASP.NET?
- 16. 如何知道在Visual Studio 2012中更新了哪些擴展?
- 17. 如何在使用Knockoutjs呈現foreach時調用方法
- 18. Visual Studio - 發現如果方法在某個點被另一個方法調用
- 19. Visual Studio 2008在寫入方法調用時出現快速崩潰
- 20. Visual Studio - 哪些引用是構建的?
- 21. 如何跟蹤調用哪些方法以及更改哪些值?
- 22. 如何確定哪些Visual Studio解決方案使用哪些項目?
- 23. 用Visual Studio調試GLU的方法?
- 24. 在Visual Studio中運行時應用了哪種配置轉換?
- 25. 爲什麼在模板呈現時django form.as_p調用form.clean方法?
- 26. 查看Xcode中調用了哪些方法
- 27. Visual Studio調試,跳轉到方法結束,或調用方法
- 28. SSRS Visual Studio的網格在Designer
- 29. visual studio 2010 c#winform運行時編譯
- 30. 調整JFrame大小時會調用哪些方法?
所以在構造函數中的所有方法只?那InitializeComponent呢?或者隱含在構造函數中? – Denis
OnLoad呢? – Denis
InitializeComponent是構造函數的一部分,而OnLoad不是。實際上,您可以使用Visual Studio調試Visual Studio,以查看哪些方法已被調用。 –