5

我正在尝试在 DevExpress GridControl 中每一行的右侧创建一个删除按钮,如下所示:

在此处输入图像描述

我所做的是添加另一列并将其 ColumnEdit 属性设置为 RepositoryItemButtonEdit 的实例。我处理 ButtonClick 事件,以删除一行。

我可以从这段代码中确定我在哪一行:

myGridView.GetRow(myGridView.FocusedRowHandle);

因为我不想在我的按钮上使用文本编辑器,所以我将 TextEditStyle 设置为 HideTextEditor。

默认情况下,该按钮显示一个省略号。

为了删除省略号,我调整了 RepositoryItemButtonEdit 上的 Buttons 属性。我将种类设置为字形并将图像设置为我的 X 图标。

不幸的是,这似乎只是完全删除了按钮。

有谁知道这样做的更好方法,或者在每个网格行中显示带有图像的按钮的方法?

4

2 回答 2

3

我发现实际上有一个删除按钮类型。所以,我按照问题中的方式做所有事情,但我没有选择那种 Glyph,而是选择了删除,我不需要选择图像。

于 2012-12-11T11:09:14.367 回答
3

我总结了我在DevExpress 论坛中发现的内容:

使用ButtonEdit 控件并将TextEditStyle属性设置为HideTextEditor。Repository Item 有一个Buttons集合,您可以通过它添加标题、图像等。

Buttons集合中,将“Kind”属性更改为“Glyph”。您可以使用该CustomRowCellEdit事件有条件地逐个单元格地应用编辑器。确保将 Button 的Kind属性设置为“字形”并将该Caption属性设置为您想要的任何文本:

DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit buttonEdit = 
    new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit();
buttonEdit.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph;
buttonEdit.Buttons[0].Caption = "X";
buttonEdit.TextEditStyle =             
    DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;
e.RepositoryItem = buttonEdit;

您应该处理 GridView 的CustomRowCellEdit事件,构造一个新的RepositoryItemButtonEdit并将其分配给e.RepositoryItem property.

让我知道这是否有效。

于 2012-12-11T14:49:55.173 回答