使用表单为规则引擎动态生成按钮/面板

时间:2013-12-30 12:33:09

标签: c# forms rule-engine

我正在编写自己的规则引擎,我已经看过一些已存在的但我正在寻找其他一些我找不到的例子。 我正在寻找一个类似的应用程序,我可以深入研究并学习如何实现它。

现在,我的问题是无论规则引擎,更多的是表格/动态问题,但如果你的答案可以,你可以 与我最终想要做的事情有关,这将是伟大的。

关于用户界面,我使用的是Visual Form,我希望它是这样的: http://i.imgur.com/5istREF.jpg

现在,一旦用户选中最后一个复选框“And / Or”,我希望他能够输入另一个规则,格式与第一个规则完全相同。 http://i.imgur.com/N588sjj.jpg

现在用户基本上可以根据需要多次进行,所以我正在寻找一种方法来动态处理它并创建按钮/面板甚至使用相同的(但每次他可以输入不同的值)

就像我说的,如果你知道我可以研究的任何类似的应用程序/代码,无论规则引擎如何,这也会有所帮助。

最终我将把他输入的所有字段都转换成代码。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以做的是制作一个你自己的控制器,它是在另一个表单中定义的,然后你可以根据需要将它添加到主表单中。 您可以定义这个新控制器(意味着一个新表单),只保留一行comboBox,然后将其添加到主表单中基于前一个控制器位置的位置。

这是一个示例,它将一个名为CNewControl的类的几个控件添加到一个名为newControlsTab的选项卡中。

    int controlHeight = 0;
    foreach (CNewControl newControl in newControlList)
      {
        this.newControlsTab.Controls.Add(newControl );
        newControl.Dock = DockStyle.Top;
        newControl.Location = new System.Drawing.Point(40, 3 + controlHeight);
        controlHeight += newControl .Size.Height;
      }

当用户选择应添加一行的相应选项时,您当然可以将其更改为仅添加一行。