2010-07-31 85 views
1

我創建了一個WinForms用戶控件,它是一組五個級聯組合框 - 用戶從頂部組合框中選擇一些內容,然後填充並啓用第二個組合框,依此類推。如果新啓用的組合中只有一個選項,我會自動選擇它,使其下面的選項變爲活動狀態。因此,單個用戶操作可以通過幾個額外的組合來降低。級聯組合框中的事件

我提出了一個特定於每個組合框的事件。我還想隨時提出最後的活動任何東西的變化。例如,用戶從頂部組合中選擇一個選項。這引發了Combo1Changed事件。如果這會自動導致在第二個組合中的選擇,那麼我也會引發一個Combo2Changed事件。當這一切完成後,我想提出一個SomethingChanged事件。

現在我每次組合更改時都會引發ComboXChanged和SomethingChanged事件。但是,由於單個選擇可以將所有五個連擊組合起來,它可能會導致數十個事件被提出。

我無法弄清楚如何確定級聯何時完成,以便我可以只觸發一次事件。有沒有一種巧妙的技巧或模式來編碼這種東西?

回答

0

你可以通過一個類來解決這個問題,所有的組合框都將它們的選擇改變的事件傳遞給它,並引發一個封裝其他事件的單個事件。

話雖如此,我會考慮重新設計這個用戶界面。你是否考慮用樹形視圖替換四個甚至所有的下拉列表?這對用戶來說導航會容易得多。

+0

這是一個好主意,謝謝 – Sisiutl 2010-08-02 19:33:16