Visual Inheritance or a User Control?

5

我在一个.NET Windows应用程序中有几个表单,它们都具有一组共同的文本框和其他用户输入控件。每个表单都具有相同的外观和感觉,但是每个表单需要加载和保存到不同的数据库表。

是将控件放在基础表单上并从中继承,还是创建一个用户控件以在每个表单上使用更好呢?

4个回答

1

我通常更喜欢使用UserControls,因为它们更灵活 - 您可以在表单的上下文中使用它们,或者在任何其他可视化上下文中显示或修改数据。我曾经遇到过几种情况,需要将UI设计从单独的对话框更改为主表单内部的内联控件或类似的东西。

除此之外,我认为这是一种品味问题。


0

这要看情况。使用组合模型(使用用户控件)更加干净,但是该控件无法感知调用窗体,因此您必须将逻辑作为事件传递。有时这可能会导致重复的逻辑。

使用继承,您可以在基类中实现通用代码,并在子类表单上进行一些覆盖并实现灵活的互动。但是,这要求子类的所有实现者都了解基类源代码,这可能会变得混乱。


0

我两种方法都使用,具体取决于情况。如果您有一个功能性的 LOGIC 片段,想要将其不经修改地放入表单中,那么我认为 UserControls 是合适的。然而,如果您只是想在多个表单之间复制和扩展共同的 UI,则可视化继承可能是更好的选择。


0

根据逻辑,使用已连接事件的用户控件更简单。如果有共同任务,则可以使用基类服务器控件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接