2010-10-05 37 views
2

这更多的是一个设计问题。设计在WinForms中动态创建按钮/菜单

要求是有一个多个按钮的winform。每个按钮可以用多个按钮打开另一个表格或打开一个功能表格,例如,添加订单等基本上我们有菜单形式(由按钮组成)和函数形式(应用程序提供的功能)。

因为这是一款有多个客户端的产品,我们需要根据客户购买的功能来启用/禁用/隐藏/显示按钮。

什么是最好的实施这种按摩器的按摩菜单?

谢谢。

回答

0

确定我们所做的是如下,

我们有两个选择:

  1. 保持在数据库中的一切,菜单和按钮的所有层次结构。创建一个通用菜单表单,然后在表单中即时创建按钮。它看起来不错,但我们有两个问题。 a)首先创建按钮就意味着我们必须在单个通用函数中实现他们的点击功能(即点击时打开哪个表单),这个函数通过反射来打开表单。这限制了我们,因为我们有问题将自定义参数传递给表单。我们可以为其添加多个函数,但那样会创建一个具有很多函数的大类。不完全一般。 b)其次,我们为所有菜单创建单一表单意味着我们无法为不同的表单定制表单(如在页眉/页脚中添加其他控件)。我们再次可以做到这一点,但这将再次需要很多ifs等。

  2. 在UI层静态地创建所有的菜单和按钮。并根据表值/配置启用/禁用/隐藏/显示它们。这是比#1更多的工作,但它让我们在UI布局方面有很大的灵活性。

0

将菜单上的菜单(导航)按钮和停靠工具栏上的功能按钮放在一起。

+0

当我说它是一个设计问题时,我不是指UI设计。 – neebz 2010-10-05 21:50:18