EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

如何:访问Office导航栏

本主题演示在WinForms应用程序中使用OutlookStyleMainRibbonForm模板时如何访问用于显示导航根组的Office导航栏

提示

DevExpress代码示例数据库(http://www.devexpress.com/example=T392480)中提供了完整的示例项目。

执行以下步骤以访问OfficeNavigationBar对象并自定义其设置。

  1. 在WinForms模块中创建一个新的WindowController
  2. OfficeNavigationBar控制位于OutlookStyleMainRibbonForm 模板(见IModelRootGroupsStyle.RootGroupsStyle)。要在创建或更改此模板后访问此模板,请重写Controller的OnActivated方法并订阅主窗口的Frame.TemplateChanged事件。
  3. TemplateChanged事件处理程序中,将Frame.Template属性转换为Form类型并处理Form.Load事件。
  4. Form.Load事件处理程序中,将发送方强制转换为IOfficeNavigationBarHolder类型。
  5. 要访问OfficeNavigationBar对象,请使用IOfficeNavigationBarHolder.OfficeNavigationBar属性。例如,您可以将OfficeNavigationBar.MaxItemCount属性设置为4,以更改OfficeNavigationBar控件中同时显示的最大项目数。
  6. 取消激活控制器后,将通过重写的OnDeactivated方法取消订阅TemplateChanged事件。
using DevExpress.ExpressApp.Win.Templates;
using DevExpress.XtraBars.Ribbon;
//...
public class OfficeNavigationBarCustomizationController : WindowController {
    private void Frame_TemplateChanged(object sender, EventArgs e) {
        Form form = Frame.Template as Form;
        if(form != null) {
            form.Load  = Form_Load;
        }
    }
    private void Form_Load(object sender, EventArgs e) {
        IOfficeNavigationBarHolder officeNavigationBarHolder = sender as IOfficeNavigationBarHolder;
        if(officeNavigationBarHolder != null) {
            officeNavigationBarHolder.OfficeNavigationBar.MaxItemCount = 4;
        }
    }
    protected override void OnActivated() {
        base.OnActivated();
        Frame.TemplateChanged  = Frame_TemplateChanged;
    }
    protected override void OnDeactivated() {
        Frame.TemplateChanged -= Frame_TemplateChanged;
        base.OnDeactivated();
    }

    public OfficeNavigationBarCustomizationController() {
        TargetWindowType = WindowType.Main;
    }
}

运行该应用程序,以确保可见的OfficeNavigationBar项的最大数量为4。

转载保留此链接,注明出处