繁体   English   中英

C#是否执行Windows窗体的动态继承之类的操作?

[英]C# Do something like dynamic inheritance for Windows Forms?

我正在使用具有某些窗体主题选项的第三方Windows窗体库,例如使窗体窗口看起来像Office Forms(类Office2007Form)或Metro Metros(类MetroForm)。 该库由SyncFusion创建。

https://www.syncfusion.com/products/windows-forms/office2007form

https://www.syncfusion.com/products/windows-forms/metroform

不幸的是,没有一个表单类可以通过属性设置主题(类似:SyncFusionForm.Theme = Metro)。 相反,这些类是分开的,因此如果我想同时支持两个主题,则必须使用相同的控件和几乎相同的代码为每个主题创建重复的表单。

是否可以通过模拟接口的多重继承来动态设置类似的内容? 我没有表单类的源,因此我的选择不太灵活。 要创建以SyncFusion为主题的表单,我目前仅创建Windows表单并将基类从“表单”更改为“ Office2007Form”或“ MetroForm”,然后为颜色设置了一些属性,等等。

请让我知道是否有人对我如何在不复制控件和代码的情况下有所了解。 提前致谢!

我的第一个直觉是将所有内容放在UserControl上。 然后,根据需要将用户控件添加到Office2007Form或MetroForm实例中。

我遵循“偏重于继承”的设计模式原则

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM