gpt4 book ai didi

c# - .NET:继承自 MyControl for Windows.Forms

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:39 26 4
gpt4 key购买 nike

我想为我的所有控件和表单添加一些自定义功能。我已经创建了一个 MyControl 类,这样做没有问题:

MyControl : Control

然后让我的控件继承自 MyControl。

但是,我希望我的表单具有相同的功能,并且因为表单继承自 ContainerControl、Scrollable Container 和 THEN Control,所以我必须创建我自己的所有这些版本以使其使用 MyControl,这似乎效率低下.

有什么办法解决这个问题吗?我不能使用接口(interface),也不想创建与 MyControl 具有相同功能的名为 MyForm 的类的副本

最佳答案

您正在寻找的是多重继承(.net 中不存在,with no plans to change that),或者默认接口(interface)实现,又名 DII(可能存在于 .net 的 future 版本中)

截至今天,不幸的是,这个问题还没有干净的解决方案,最好的办法是创建两个基类。不过,您可以在第三个帮助器类中共享代码,这样只会复制胶水代码,而不是实际的实现。

根据您要实现的功能,另一种有用的技术是创建一个类,在其构造函数中传递一个对象(Form 或 Control),然后添加您需要的额外功能。但是,您将无法以这种方式访问​​受控件/表单保护的成员。

Here是讨论您的问题的链接。

关于c# - .NET:继承自 MyControl for Windows.Forms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1530790/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com