2010-07-31 78 views
1

我创建了一个WinForms用户控件,它是一组五个级联组合框 - 用户从顶部组合框中选择一些内容,然后填充并启用第二个组合框,依此类推。如果新启用的组合中只有一个选项,我会自动选择它,使其下面的选项变为活动状态。因此,单个用户操作可以通过几个额外的组合来降低。级联组合框中的事件

我提出了一个特定于每个组合框的事件。我还想随时提出最后的活动任何东西的变化。例如,用户从顶部组合中选择一个选项。这引发了Combo1Changed事件。如果这会自动导致在第二个组合中的选择,那么我也会引发一个Combo2Changed事件。当这一切完成后,我想提出一个SomethingChanged事件。

现在我每次组合更改时都会引发ComboXChanged和SomethingChanged事件。但是,由于单个选择可以将所有五个连击组合起来,它可能会导致数十个事件被提出。

我无法弄清楚如何确定级联何时完成,以便我可以只触发一次事件。有没有一种巧妙的技巧或模式来编码这种东西?

回答

0

你可以通过一个类来解决这个问题,所有的组合框都将它们的选择改变的事件传递给它,并引发一个封装其他事件的单个事件。

话虽如此,我会考虑重新设计这个用户界面。你是否考虑用树形视图替换四个甚至所有的下拉列表?这对用户来说导航会容易得多。

+0

这是一个好主意,谢谢 – Sisiutl 2010-08-02 19:33:16