XtraBars 套件允许把编辑器放置到 bars 中。 BarEditItem 类表示包含编辑器的 bar item。 可以使用由 XtraEditors 库 提供的任意编辑器或其子类。 下面的插图展示了包含三个编辑项的 bar。
创建内置编辑器
通过 repository 项的集合来为 bar 编辑项提供编辑器。 Repository 项存储了适合于特定编辑器类型的属性和事件处理程序。 使用这些设置,repository 项能够创建全功能的编辑器。 请参阅 编辑器类的结构 主题来获得关于这种机制的附加信息。
有两种类型的 repositories 能为 bars 提供编辑器。 第一种是 BarManager 的内部 repository。 使用 BarManager 的 EditorContainer.RepositoryItems 属性可以在运行时刻访问此 repository。 下面的插图展示了如何在设计时刻访问该属性。
BarManager 提供了在设计时刻定制 repository 的对话框。 在设计器的 Repository Editor 页面中可用。 注意此内部 repository 只应该包含用于 bars 的编辑器,而不能由其他控件使用。
如果需要在多个控件内部使用相同的编辑器 (repository 项),则应该使用 PersistentRepository 组件,此组件作为外部 repository。 要把外部 repository 绑定到 BarManager,则使用它的 EditorContainer.ExternalRepository 属性。 注意,bar items 可以使用内部和外部 repositories 提供的编辑器。 请参阅 Repositories 和 Repository Items 主题,来获取其他信息。
下面的示例代码展示了如何创建一个微调编辑 repository 项,并把它绑定到一个已经包含在 BarManager 内部的 bar 编辑项。
C# | 复制代码 |
---|---|
using DevExpress.XtraEditors.Repository; // Create a repository item for a spin editor RepositoryItemSpinEdit riSpin = new RepositoryItemSpinEdit(); // Add the item to the BarManager's internal repository barManager1.RepositoryItems.Add(riSpin); barEditItem1.Edit = riSpin; |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.XtraEditors.Repository ' Create a repository item for a spin editor Dim riSpin As RepositoryItemSpinEdit = New RepositoryItemSpinEdit() ' Add the item to the BarManager's internal repository BarManager1.RepositoryItems.Add(riSpin) BarEditItem1.Edit = riSpin |
使用内置编辑器
在 bar 或菜单内部的编辑器 ( BaseEdit 的子类) 仅当相应的编辑器框获得焦点时才激活。 如果编辑框没有获得焦点,则在此时间点上该编辑器不存在。 当编辑框失去焦点时,相应的编辑器自动被销毁。 因此,不能访问显示在 bars 中的编辑器,除非此编辑器获得焦点。
要访问和定制 bar 内部的特定编辑器,首先要通过 BarEditItemLink.ShowEditor 方法激活此编辑器。 然后,通过 BarManager.ActiveEditor 属性访问此编辑器。