我新建一个项目,项目中我想运用DevExpress来美化一下,所以呢,每一个窗体都要来继承“DevExpress.XtraEditors.XtraForm”,
但是我整个项目打算用DockContent来实现布局,这样的话每一个窗体都要继承“DockContent”才行,如何使得这两个方案同时进行呢?
能不能写一个类, 在那个类里面继承DevExpress.XtraEditors.XtraForm,然后在窗体里面直接继承这个类呢??我知道继承都是单继承,不能继承多个。
我见过别人的作品,确实能够做到那种效果,只是我现在还不知道怎么去解决这个问题,请知道的朋友帮手看看。感谢!
DockContent 是个开源的控件吧。重写一下这个控件,让它继承XtraForm,而不是Form。反正XtraForm也是继承Form的。试试看行不行。
写一个类将你需要用的方法都写在这个类中,把新写的这个类当对象来看,他里面包括两个对象DevExpress和DockContent,这样你就有了两个类的方法集合,其他地方再集成这个类或者实例化都行。
za235:
你好,我也想过能不能通过一个类来实现,但是不知道这个类里面应该怎么去实现它,能麻烦你给点提示代码吗?3Q
@Allen_Chen: 在你新写的类里面的添加你需要用到上述两个类的的方法名称,然后调用上面那两个的的方法。
public class Test:DockContent
{
DevExpress de = new DevExpress();
public 返回值类型 xxx()
{
return de.xxx();
}
public 返回值类型 yyyy()
{
return de.xxx();
}
}
这样是否可以理解?
@az235:
我只是想要那个DevExpress里面的一些美化效果,那该用什么类型呢?
@Allen_Chen: 他返回什么类型,你的返回值类型就用什么类型。
@az235:
貌似有点问题,我把图片上传上来,麻烦你帮手看看,我的目的就是用户选择风格的时候可以改变整个项目的风格,用户选择了风格之后如何利用前面那个类把风格应用到这个项目呢?
@Allen_Chen: 动态窗体重绘,就是根据新的属性,去替换原有属性,因为你这个下来框是有事件的,让事件去触发
DevExpress这个控件框架就可以实现你想要的效果,为何还要用DockContent ?
DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = “皮肤名称”;
//只要这一句就可以实现。
//皮肤名称DevExpress 内置了很多
//DevExpress.UserSkins.OfficeSkins.Register();
//DevExpress.UserSkins.BonusSkins.Register();
//内置的扩展样式,需要引入相应的DLL,然后执行这个注册
//
//关于子窗体DOCK功能,DevExpress 也有相应的组件,你可以参考它的帮助文档
//DevExpress是个很强大的框架,慢慢摸索下,你就知道了。
//
DevExpress也可以实现Dock的效果,试试看吧