我在.net windows应用程序中有几个表单,它们有一组通用的文本框和其他用户输入控件,每个表单都有相同的外观,但每个表单都需要加载并保存到不同的数据库表。
将控件放在基本表单上并从中继承或创建用户控件以放在每个表单上会更好吗?
答案 0 :(得分:1)
我通常更喜欢UserControls,因为它们更灵活 - 您可以在表单的上下文中使用它们,或者在任何其他可视上下文中使用它们来显示或修改数据。我有几个案例,我不得不从单独的对话框中将UI设计更改为在主窗体内部编辑内容控件或类似内容。
除此之外,我认为这是一个品味问题。
答案 1 :(得分:0)
这取决于。复合模型(使用用户控件)更干净,但控件无法识别调用表单,因此您必须将逻辑作为事件传递。这有时会导致重复的逻辑。
通过继承,您可以在基类中实现公共代码,并在子类表单中实现一些覆盖,并实现灵活的相互作用。但这需要子类的所有实现者都知道基类源代码,这可能会变得混乱。
答案 2 :(得分:0)
我根据具体情况使用这两种方法。如果你有一个功能性的LOGIC,你只想将其放入未修改的形式,那么我认为UserControls是合适的。但是,如果您只是想在多个表单中复制和扩展通用UI,那么可视继承可能是更好的选择。
答案 3 :(得分:0)
根据其使用的用户控件更简单的逻辑与事件连接。如果有共同的任务,您可以使用基类服务器控件。