XtraBars 套件 允许把编辑器加入到 bars 中。 可以使用源自 XtraEditors 库 或其子类的任意编辑器来实现此目的。 此主题涉及在 bars 中插入编辑器。
任务
本主题中的示例是一个组合框,此组合框可以用于修改文本编辑器的内容的字体。 下面的插图展示了完成此示例之后的结果。
实现
按照下列步骤来创建这一个应用程序。 (假设已经打开了一个 Windows 应用程序项目。 BarManager 组件必须位于窗体中。)
- 新建一个工具栏。 请参阅 使用按钮项 指南来获得关于如何创建及定制工具栏的信息。
-
一旦创建了工具栏,就可以把新的编辑项添加到项集合中,如下图所示。 要新建的工具栏项的类型选择 BarEditItem,编辑项的类型选择 ComboBoxEdit。
在新建编辑项时,它相应的编辑器会被添加到 BarManager 的内部 repository (通过 ComponentEditorContainer.RepositoryItems 属性呈现) 中。 请参阅 内置编辑器概述 主题来获得更多信息。
注意: 如果包含编辑项的工具栏是垂直方向的(停靠在容器的左侧或右侧),则该编辑器将不可视。 原因是不能垂直地绘制它。 应该把工具栏的 BarOptions.RotateWhenVertical 属性设置为 false。 在这种情况下,工具栏的 links 将在水平方向上。
-
单击新建的 link,在属性窗口中显示与它相应的工具栏项的属性。 把 BarEditItem.AutoFillWidth 属性设置为 true。 编辑器将被水平拉伸,使它能占用为它提供的整个区域。
-
把一个文本框添加到窗体中。 把它的 Multiline 属性设置为 true 来显示多行文本。 此窗体的外观与下图相像。
-
然后需要访问新建工具栏项的事件。 为 BarEditItem.EditValueChanged 事件编写下列处理程序。 这样,当用户从组合框中选中字体名称时,将会修改文本框的字体。
C# 复制代码 private void barEditItem1_EditValueChanged(object sender, System.EventArgs e) { textBox1.Font = new Font(barEditItem1.EditValue.ToString(), 10); }
Visual Basic 复制代码 Private Sub BarEditItem1_EditValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles BarEditItem1.EditValueChanged TextBox1.Font = New Font(BarEditItem1.EditValue.ToString(), 10) End Sub
-
接管窗体的 Load 事件,根据所有可用的字体名称来填充组合框项。 也禁用了组合框的文本编辑器,并且指定了在下拉项中可视的行号。
C# 复制代码 using DevExpress.XtraEditors.Controls; private void Form1_Load(object sender, System.EventArgs e) { // filling the combo box with data for (int i = 0; i < FontFamily.Families.Length; i++) { repositoryItemComboBox1.Items.Add(FontFamily.Families[i].Name); } // disabling the text editor of the combo box repositoryItemComboBox1.TextEditStyle = TextEditStyles.DisableTextEditor; // specifying the number of lines in the dropdown window repositoryItemComboBox1.DropDownRows = 4; // initializing the combo box with the first available font name barEditItem1.EditValue = FontFamily.Families[0].Name; }
Visual Basic 复制代码 Imports DevExpress.XtraEditors.Controls Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load Dim i As Integer ' filling the combo box with data For i = 0 To FontFamily.Families.Length - 1 RepositoryItemComboBox1.Items.Add(FontFamily.Families(i).Name) Next i ' disabling the text editor of the combo box RepositoryItemComboBox1.TextEditStyle = TextEditStyles.DisableTextEditor ' specifying the number of lines in the dropdown window RepositoryItemComboBox1.DropDownRows = 4 ' initializing the combo box with the first available font name BarEditItem1.EditValue = FontFamily.Families(0).Name End Sub
-
运行此应用程序。 在文本编辑器中键入一些文本。 使用组合框来选择应用于此文本框的字体。 下面的插图展示了在运行时刻工具栏浮动时的应用程序。 要让工具栏浮动,必须把它拖离窗体。 可以使用 drag borders(可拖动边框) 来拖动 Bars。 请参阅 最终用户功能: 使用拖放操作 主题来获知细节。