2012-01-19 61 views
-2

我目前正致力于用.NET 3.5编写的C#编写的这个大型项目(一个GUI来控制硬件)。现在硬件的下一个版本即将到来,其中一些变化是我们之前不需要的一些控件是不需要的,并且还需要添加一些新的控件。由于变化巨大,因此需要几乎一个月的时间才能完成每个控件,并且需要一个条件来使其可见或不可见。有条件地添加控件

我想知道是否有任何其他方式来解决这个问题,而不是手动调节整个项目。提前致谢。

+0

您能否提供一个在确定控件是否可见时所考虑的条件类型的示例? –

+0

对于我以前使用枚举的项目来说太远了,就像我在启动时设置enum变体以及基于它的加载控件一样。谢谢。 – Vikyboss

+1

因此,如果你使用'enum'以某种方式定义控件,那么它的工作原理是什么?底线是你需要能够告诉你的程序是否应该呈现特定的控件。无论是通过'enum',标签值还是其他值;你需要一些方法来确定一个特定的控件应该是可见的(甚至创建)。除非您切换到WPF,否则我无法想到使用Framework或任何现有库执行此操作的方法。 –

回答

2

如果您可以根据控件的某些属性(如其名称或标签)作出可见或不可见的决定,则可以编写一种方法,该方法可以遍历窗口控件,并以编程方式隐藏所需的控件隐。对于像标签这样的控件,您可以键入标签的文本。

写入正确的方法可以写入,以便它可以重入,以便对于包含其他控件的控件,该方法会为每个当前控件的子项调用其自身。

关于这一点最难的部分是确定如何以编程方式决定是否开启或关闭决策。

如果这是不可能的,另一个解决方案可能是编写一个小应用程序,该应用程序将读取代码并列出要检查的控件,以便根据您对应用程序的了解做出决定。然后,应用程序可以进行必要的更改,以便在代码中设置控件上的属性,以便在编译代码时隐藏它。

+0

感谢Gil.Your建议是一个很好的建议。 – Vikyboss

+0

当然欢迎您。我很高兴这是一些帮助。 – Gil

1

您通常必须为这些类型的事物设计,并且通过它的声音,它不是为此设计的。

但很多时候,这种变化显得相当大,但往往不是那么大的一笔交易。

+0

的确,通常我们曾经有过较小的项目,而且手动更换并不难。但是这一点更大一些,实际上我并不是那个设计了我后来加入的建筑的人,在这个人离开之后,试图看到如何在没有更多工时的情况下进行改变。谢谢。 – Vikyboss

+0

我发现,如果事情可以通过搜索找到,而且你必须改变每一个......即使有成百上千,通常实际的时间是一两天,如果那样的话。有时候,如果你真的很聪明,你可以自动更换。 –