对于在WinForms .NET应用程序中重用表单或控件是否设计为多种模式,是否有任何意见?我经常发现自己想要这样做。我将有一些需要在多个地方使用的UI,而不是重复使用代码,我将给表单一个模式,确定文本显示的内容,某些元素是否可见,以及如何元素定位。
这似乎总是有点像kludge,所以我想知道是否有人以不同的方式解决这个问题?
答案 0 :(得分:2)
我认为可以归结为您在单个表单中添加不同的模式。例如,隐藏单个复选框的模式比交换大多数控件的模式更容易维护。只有您可以决定您的表格在此频谱中的位置。
我还会尝试识别和使用技术来最小化多种模式的复杂性。我想到了一些想法:
答案 1 :(得分:1)
我会说,只要表格“小”足以使模式不会造成维护噩梦,并且,只要每种模式的功能密切相关,那么它应该没问题。在某些时候,如果维护变得更麻烦,那么你可能需要将其分开。
例如,我有一个表单,既可以作为给予客户的联系信息列表,也可以作为一般的“搜索联系人”表单。在构造函数中,我是否传递客户ID告诉表单在哪种模式下。
答案 2 :(得分:0)
仅当表单编辑的数据相同但上下文不同时才这样做。在这些情况下,我经常将表单传递给上下文枚举,表单使用它来启用/禁用某些字段或更改某些文本。
例如,我现在在应用程序中的表单允许我编辑“频道”(多路复用频道)。当我使用表单创建“新”频道时,频道名称是一个可编辑的字段。但是当我编辑现有频道时,名称是我不想更改的关键字段,因此该字段将被禁用。它是完全相同的形式,但在上下文中,表单确定是否禁用/启用该字段。
最后,我认为这是一种相当普遍的做法。