我正在C#中創建一個Windows窗體應用程序,我有兩種形式。用戶將要使用圖形的主要形式以及包含以下內容的另一種形式:系列外觀選項,軸選項,標籤選項等...... 當按下「工具」按鈕時將顯示此窗體。從那裏我打算讓用戶按照自己的意願修改他們的圖表。我的問題是- 當第一個窗體加載或初始化時填充第二個窗體是否更快/更好?還是隻有當按下「工具」按鈕時纔會這樣做。何時應該填充winform應用程序中的第二個表單?
回答
這個問題是關於急切加載(儘快加載數據)和延遲加載(需要時加載數據)之間的區別。我認爲這裏的決定應該歸結爲用戶體驗。如果數據需要一些時間才能加載,並且用戶將經常訪問屬性窗口,那麼我會建議加載。另一方面,如果加載速度很快,或者這是一個不常見的功能,那麼我會建議延遲加載。所以,你需要弄清楚你的用戶期望什麼。但是,如果屏幕的數據加載速度很快,那麼加載時幾乎沒有問題。
我還建議你重新考慮你的屬性窗口,特別是如果它要頻繁使用。這種用戶界面的範例是將PropertyGrid嵌入到大部分工作完成的相同應用程序窗口中。想想Visual Studio的許多例子,以及任何IDE風格的應用程序。他們不傾向於擁有「浮動」屬性窗口。範例是您可以顯示IDE中當前選定的任何對象的屬性,以便快速輕鬆地進行修改。單獨的工具|選項範例更適用於應用程序級別的設置,這些設置的修改頻率要低得多,並且與應用程序相關聯,而不是應用程序管理的特定對象。再次,Visual Studio就是一個很好的例子。
在我看來,最好在點擊適當的按鈕時創建第二個窗體的新實例。我想你應該只在需要時爲表單分配內存。
但是,如果您的表單很快加載,那麼從用戶的角度來看,只要您隱藏第二個表單直到單擊該按鈕,這應該就無關緊要。
// button event in your first form (Form1)
private void firstButton_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.ShowDialog(); // Shows Form2
}
應該使用,因爲你可能不需要按鈕。
這根本不回答問題。 OP不詢問如何打開新表單。 – AbZy 2013-02-25 16:17:31
在啓動時創建多個表單不是很有伸縮性。當你有20-30個表格時,需要很長時間才能加載!在需要時創建它們。
雖然我同意這種情況,但我認爲這一切都歸結爲需求的特定情況。 OP說有一種形式,應該是一種「兩種方式」的情況。 – gunr2171 2013-02-25 16:21:18
- 1. 當AlertDialog應該第二次打開時,應用程序崩潰
- 2. WinForm應用程序主表單
- 3. 如何使用iPad應用程序來填充Sharepoint表單
- 4. 如何用c#應用程序填充外部Web表單?
- 5. 當用作popus時,應該在客戶端填充Django表單
- 6. 從第一個應用程序啓動第二個應用程序,然後關閉第一個應用程序
- 7. iPhone的第二個iOS應用程序
- 8. Java應用程序中的填充
- 9. 在WinForm應用程序中保存表單時出錯
- 10. 第二面應用程序?
- 11. 將參數從一個winform應用程序發送到另一個應用程序並填充文本框
- 12. 如何填充MFC C++應用程序中的Windows菜單
- 13. 如何填充表的第二列
- 14. 使用robotium從第一個應用程序測試第二個應用程序
- 15. C#Winforms應用程序打開第二個Winforms應用程序
- 16. 填充第二個下拉
- 17. 如何從XCode中的第二個目標創建第二個應用程序?
- 18. 自動填充網站表單的mac應用程序
- 19. 在第二個應用程序上彈出radwindow onclick第一個應用程序
- 20. 從第一個應用程序運行第二個應用程序android
- 21. 安裝第二個RoR應用程序
- 22. 啓動第二個JavaFX應用程序
- 23. 在Symfony2中提交表單後填充第二個實體
- 24. 如何在單擊按鈕時在Manifest中啓動第二個應用程序
- 25. 在單視圖應用程序中添加第二個UIViewController
- 26. 簡單的應用程序來填充一個asp.net Gridview
- 27. Django Formset填充時應該是空的
- 28. 如何從另一個應用程序運行第二個應用程序(C#)
- 29. Inno安裝程序僅在完成第一個應用程序時執行第二個應用程序
- 30. 這個應用程序中的數據庫如何被填充?
哇,謝謝你回答我的問題。真正超出我的要求,並且非常有幫助。 – user2023068 2013-02-25 16:29:47