首页 新闻 会员 周边

WinForm如何同时继承DevExpress和DockContent

0
悬赏园豆:50 [已解决问题] 解决于 2012-05-11 17:27


我新建一个项目,项目中我想运用DevExpress来美化一下,所以呢,每一个窗体都要来继承“DevExpress.XtraEditors.XtraForm”,
但是我整个项目打算用DockContent来实现布局,这样的话每一个窗体都要继承“DockContent”才行,如何使得这两个方案同时进行呢?

能不能写一个类, 在那个类里面继承DevExpress.XtraEditors.XtraForm,然后在窗体里面直接继承这个类呢??我知道继承都是单继承,不能继承多个。

我见过别人的作品,确实能够做到那种效果,只是我现在还不知道怎么去解决这个问题,请知道的朋友帮手看看。感谢!

无 影的主页 无 影 | 初学一级 | 园豆:59
提问于:2012-03-01 15:24
< >
分享
最佳答案
0

DockContent 是个开源的控件吧。重写一下这个控件,让它继承XtraForm,而不是Form。反正XtraForm也是继承Form的。试试看行不行。

收获园豆:30
会长 | 专家六级 |园豆:12401 | 2012-03-01 17:02
其他回答(3)
0

写一个类将你需要用的方法都写在这个类中,把新写的这个类当对象来看,他里面包括两个对象DevExpress和DockContent,这样你就有了两个类的方法集合,其他地方再集成这个类或者实例化都行。

收获园豆:6
az235 | 园豆:8483 (大侠五级) | 2012-03-01 16:21

za235:

你好,我也想过能不能通过一个类来实现,但是不知道这个类里面应该怎么去实现它,能麻烦你给点提示代码吗?3Q

支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2012-03-01 16:27

@Allen_Chen: 在你新写的类里面的添加你需要用到上述两个类的的方法名称,然后调用上面那两个的的方法。

public class Test:DockContent
{

DevExpress de = new DevExpress();
public 返回值类型 xxx()
{
return de.xxx();
}
public 返回值类型 yyyy()
{
return de.xxx();
}
}

这样是否可以理解?

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-03-01 16:36

@az235: 

我只是想要那个DevExpress里面的一些美化效果,那该用什么类型呢?

 

支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2012-03-01 16:49

@Allen_Chen: 他返回什么类型,你的返回值类型就用什么类型。

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-03-01 16:52

@az235: 

貌似有点问题,我把图片上传上来,麻烦你帮手看看,我的目的就是用户选择风格的时候可以改变整个项目的风格,用户选择了风格之后如何利用前面那个类把风格应用到这个项目呢?

支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2012-03-01 17:03

@Allen_Chen: 动态窗体重绘,就是根据新的属性,去替换原有属性,因为你这个下来框是有事件的,让事件去触发

支持(0) 反对(0) az235 | 园豆:8483 (大侠五级) | 2012-03-01 17:09
0

DevExpress这个控件框架就可以实现你想要的效果,为何还要用DockContent ?

DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = “皮肤名称”;
//只要这一句就可以实现。
//皮肤名称DevExpress 内置了很多
//DevExpress.UserSkins.OfficeSkins.Register();
//DevExpress.UserSkins.BonusSkins.Register();
//内置的扩展样式,需要引入相应的DLL,然后执行这个注册
//
//关于子窗体DOCK功能,DevExpress 也有相应的组件,你可以参考它的帮助文档
//DevExpress是个很强大的框架,慢慢摸索下,你就知道了。
//

 

收获园豆:7
Sun.M | 园豆:333 (菜鸟二级) | 2012-03-02 13:10
0

DevExpress也可以实现Dock的效果,试试看吧

收获园豆:7
致远书生 | 园豆:409 (菜鸟二级) | 2012-03-04 19:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册