【问题标题】:Design to Dynamically create buttons/menu in WinForms设计在 WinForms 中动态创建按钮/菜单
【发布时间】:2010-10-05 21:14:34
【问题描述】:

这更像是一个设计问题。

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

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

什么是最好的实现这种按钮的层次菜单?

谢谢。

【问题讨论】:

    标签: winforms design-patterns


    【解决方案1】:

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

    【讨论】:

    • 错了,当我说这是一个设计问题时,我不是指 UI 设计。
    【解决方案2】:

    好吧,我们做了如下,

    我们有两个选择:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-28
      • 2011-01-02
      • 2018-03-25
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 2021-01-01
      • 2015-05-15
      相关资源
      最近更新 更多