2012-01-19 60 views
-2

我目前正致力於用.NET 3.5編寫的C#編寫的這個大型項目(一個GUI來控制硬件)。現在硬件的下一個版本即將到來,其中一些變化是我們之前不需要的一些控件是不需要的,並且還需要添加一些新的控件。由於變化巨大,因此需要幾乎一個月的時間才能完成每個控件,並且需要一個條件來使其可見或不可見。有條件地添加控件

我想知道是否有任何其他方式來解決這個問題,而不是手動調節整個項目。提前致謝。

+0

您能否提供一個在確定控件是否可見時所考慮的條件類型的示例? –

+0

對於我以前使用枚舉的項目來說太遠了,就像我在啓動時設置enum變體以及基於它的加載控件一樣。謝謝。 – Vikyboss

+1

因此,如果你使用'enum'以某種方式定義控件,那麼它的工作原理是什麼?底線是你需要能夠告訴你的程序是否應該呈現特定的控件。無論是通過'enum',標籤值還是其他值;你需要一些方法來確定一個特定的控件應該是可見的(甚至創建)。除非您切換到WPF,否則我無法想到使用Framework或任何現有庫執行此操作的方法。 –

回答

2

如果您可以根據控件的某些屬性(如其名稱或標籤)作出可見或不可見的決定,則可以編寫一種方法,該方法可以遍歷窗口控件,並以編程方式隱藏所需的控件隱。對於像標籤這樣的控件,您可以鍵入標籤的文本。

寫入正確的方法可以寫入,以便它可以重入,以便對於包含其他控件的控件,該方法會爲每個當前控件的子項調用其自身。

關於這一點最難的部分是確定如何以編程方式決定是否開啓或關閉決策。

如果這是不可能的,另一個解決方案可能是編寫一個小應用程序,該應用程序將讀取代碼並列出要檢查的控件,以便根據您對應用程序的瞭解做出決定。然後,應用程序可以進行必要的更改,以便在代碼中設置控件上的屬性,以便在編譯代碼時隱藏它。

+0

感謝Gil.Your建議是一個很好的建議。 – Vikyboss

+0

當然歡迎您。我很高興這是一些幫助。 – Gil

1

您通常必須爲這些類型的事物設計,並且通過它的聲音,它不是爲此設計的。

但很多時候,這種變化顯得相當大,但往往不是那麼大的一筆交易。

+0

的確,通常我們曾經有過較小的項目,而且手動更換並不難。但是這一點更大一些,實際上我並不是那個設計了我後來加入的建築的人,在這個人離開之後,試圖看到如何在沒有更多工時的情況下進行改變。謝謝。 – Vikyboss

+0

我發現,如果事情可以通過搜索找到,而且你必須改變每一個......即使有成百上千,通常實際的時間是一兩天,如果那樣的話。有時候,如果你真的很聰明,你可以自動更換。 –