簡體   English   中英

最佳實踐:在設計時或運行時添加控件

[英]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前綴的文件中看到此自動生成的代碼,並且可以編輯和更改自動生成的代碼

但是在某些特定情況下,您可能希望在代碼中手動定義控件。
例如:

  1. 有時,控件的數量,布置和配置可以在運行時動態更改。 例如,在您的應用程序旁邊有一個配置文件,此配置文件中的一些可變參數確定GUI中某些控件的數量和屬性。
  2. 您可能希望將控件的定義范圍限制為單個函數,而不是整個名稱空間或整個窗體類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM