ButtonEdit 编辑器及其子类可以在它们的编辑框内显示许多按钮。 ButtonEdit 类提供了管理编辑器按钮的属性和事件。 本主题提供了关于创建、定制和使用编辑器按钮的总说明信息。
编辑器按钮
一旦按钮编辑器 (或子对象) 被放置到窗体中,就可以通过 RepositoryItemButtonEdit.Buttons 属性来访问它的按钮集合。 单击与 Buttons 属性对应的省略号按钮来调用 EditorButton Collection Editor(编辑器按钮集合编辑器) 对话框。 此对话框管理编辑器的按钮集合 (例如添加、删除按钮)。 每个按钮由一个 EditorButton 对象表示,并且可以使用属性网格访问其属性。
下面的插图展示了编辑器按钮的不同设置。
下表列出了插图中的所有按钮设置并作出了简要说明。
属性 | 说明 |
---|---|
EditorButton.Caption | 指定编辑器按钮的显示文本。 |
EditorButton.Enabled | 指定编辑器按钮是否对用户操作作出响应。 |
EditorButton.Image | 指定在按钮中显示的图像。 |
EditorButton.ImageLocation | 指定图像相对于按钮标题的对齐方式。 |
EditorButton.IsLeft | 指定按钮在编辑器框内的对齐方式。 |
EditorButton.Kind | 指定按钮的种类 (在按钮中显示的图像种类)。 |
EditorButton.Width | 指定按钮的宽度。 如果设置为 -1,则根据标题和图像大小自动计算按钮宽度。 |
可以通过把 EditorButton.Visible 属性设置为 false 来隐藏按钮。
此外,可以使用 EditorButton.Appearance 属性来定制按钮的外观。
编辑器按钮的绘制样式由 repository 项的 RepositoryItemButtonEdit.ButtonsStyle 属性指定。 可以通过指派到编辑器的样式控制器(Style Controller) 来覆盖此属性值。 请参阅 边框和按钮样式 及 样式控制器 主题获知其他信息。
要对单击按钮作出响应,则接管 RepositoryItemButtonEdit.ButtonClick 和 RepositoryItemButtonEdit.ButtonPressed 事件。 当按下与按钮相关联的快捷键时,这些事件也会发生。 请参阅 编辑器按钮的快捷键 主题获知其他信息。
示例 —— 在运行时刻创建按钮编辑器
下面的代码展示了如何通过代码创建和定制按钮编辑器。
C# | 复制代码 |
---|---|
using DevExpress.Utils; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; // ... private void CreateButtonEditor (){ // creating a new button editor ButtonEdit buttonEdit = new ButtonEdit(); Controls.Add(buttonEdit); // specifying the editor's width and text buttonEdit.Width = 250; buttonEdit.Text = "Text"; // modifying the editor's button collection buttonEdit.Properties.Buttons.Clear(); buttonEdit.Properties.Buttons.Add(new EditorButton(ButtonPredefines.Redo, "", -1, true, true, true, HorzAlignment.Default, null, null, null, null)); buttonEdit.Properties.Buttons.Add(new EditorButton(ButtonPredefines.Undo, "", 20, true, true, true, HorzAlignment.Default, null, null, null, null)); buttonEdit.Properties.Buttons.Add(new EditorButton(ButtonPredefines.Glyph, "Assign", -1, true, true, false, HorzAlignment.Far, null, null, null, null)); Image buttonImage = Image.FromFile("c:\\picture.bmp"); ((Bitmap)buttonImage).MakeTransparent(); buttonEdit.Properties.Buttons.Add(new EditorButton(ButtonPredefines.Glyph, "", -1, true, true, false, HorzAlignment.Default, buttonImage, null, null, null)); } |
Visual Basic | 复制代码 |
---|---|
Imports DevExpress.Utils Imports DevExpress.XtraEditors Imports DevExpress.XtraEditors.Controls ' ... Private Sub CreateButtonEditor() ' creating a new button editor Dim buttonEdit As ButtonEdit = New ButtonEdit() Controls.Add(buttonEdit) ' specifying the editor's width and text buttonEdit.Width = 250 buttonEdit.Text = "Text" ' modifying the editor's button collection buttonEdit.Properties.Buttons.Clear() buttonEdit.Properties.Buttons.Add(New EditorButton(ButtonPredefines.Redo, "", -1, _ True, True, True, HorzAlignment.Default, Nothing, Nothing, Nothing, Nothing)) buttonEdit.Properties.Buttons.Add(New EditorButton(ButtonPredefines.Undo, "", 20, _ True, True, True, HorzAlignment.Default, Nothing, Nothing, Nothing, Nothing)) buttonEdit.Properties.Buttons.Add(New EditorButton(ButtonPredefines.Glyph, "Assign", -1, _ True, True, False, HorzAlignment.Far, Nothing, Nothing, Nothing, Nothing)) Dim buttonImage As Image = Image.FromFile("c:\\picture.bmp") CType(buttonImage, Bitmap).MakeTransparent() buttonEdit.Properties.Buttons.Add(New EditorButton(ButtonPredefines.Glyph, "", -1, _ True, True, False, HorzAlignment.Default, buttonImage, Nothing, Nothing, Nothing)) End Sub |
下面的插图展示了使用上述代码所创建和定制的按钮编辑器。