[英]Best Practices: Add controls in Design-Time or Run-Time
可能是一個愚蠢的問題,或者過於主觀,或者“取決於”,但是...在設計時或運行時添加一些控件是否有任何偏好或最佳實踐? 就可移植性而言,從視圖中分離模型,以及這些東西,是否相關?
例如,我需要使用FolderBrowserDialog。 在設計模式下將其添加到表單中還是在運行時聲明它應該更好?
編輯:謝謝大家的答復。 在這種情況下:我創建了一個按鈕供用戶選擇文件夾。 我的想法是使用FolderBrowserDialog。 我應該在“ button clik”事件內部聲明FoleBrowserDialog還是在設計時將其嵌入表格中來創建它? 對我來說,在設計時創建它很容易,因為可以輕松訪問所有表單的屬性,但是我認為在事件函數中聲明它,將路徑收集在字符串中,放置控件,返回值。 為什么? 要使用FileBrowserDialog,它是“按鈕單擊”事件處理程序的“實現細節”,與其余的Form無關。 去耦:)
使用設計師很好。 在FolderBrowser示例中,您給了我在不同項目中所做的一切。 不過,Luaan在處理手動創建的控件方面有一個很好的觀點。
確實是“依賴”。
通常,我不喜歡使用任何形式的UI設計器工具(只是我的觀點,這完全是主觀的)。
我不喜歡將表單中的每個控件都定義為類級別的字段(如果使用設計器,那就會發生這種情況),例如某些Labels在初始化后將永遠不會改變任何事情。 作為回報,如果在運行時創建標簽,則無法在UI設計器中看到它們。
但是有時候,當我在開發一個新的,小型且時間緊缺的應用程序時,我會毫不猶豫地從設計師那里受益。 (如果您可以拖放'n拖放控件,只需單擊幾下鼠標即可調整控件的大小,那確實非常快)
我認為最重要的是,您必須知道設計者分配控件和自己在運行時創建控件之間發生了什么。 之后,這個問題將變成一個簡單的“我要購買哪個顯示器”,您可以根據需要使用所需的任何工具/方法。
通常,使用設計器或在代碼中定義控件變量沒有什么區別,因為在將控件拖放到窗體中之后,設計器還提供了一些等效的C#代碼。 您可以在帶有* .Designer.cs前綴的文件中看到此自動生成的代碼,並且可以編輯和更改自動生成的代碼
但是在某些特定情況下,您可能希望在代碼中手動定義控件。
例如:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.