Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在WinForms中,如何在DevXPress GridControl中创建删除按钮?_C#_.net_Winforms_Devexpress - Fatal编程技术网

C# 在WinForms中,如何在DevXPress GridControl中创建删除按钮?

C# 在WinForms中,如何在DevXPress GridControl中创建删除按钮?,c#,.net,winforms,devexpress,C#,.net,Winforms,Devexpress,我正在尝试在DevExpress GridControl中每行的右侧创建一个删除按钮,如下所示: 我所做的是添加另一列,并将其ColumnEdit属性设置为RepositoryItemButtonEdit的实例。我处理ButtonClick事件,删除一行 我可以通过以下代码确定我所在的行: myGridView.GetRow(myGridView.FocusedRowHandle); 因为我不希望按钮上有文本编辑器,所以我将TextEditStyle设置为HideTextEditor 默认情

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

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

我可以通过以下代码确定我所在的行:

myGridView.GetRow(myGridView.FocusedRowHandle);
因为我不希望按钮上有文本编辑器,所以我将TextEditStyle设置为HideTextEditor

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

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

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


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

我发现实际上有一种删除按钮。所以,我做了问题中提到的所有事情,但是我没有选择种类标志符号,而是选择了删除,我不需要选择图像。

我总结了我在:

使用
按钮dit
控件并将
TextEditStyle
属性设置为
HideTextEditor
。存储库项有一个
按钮
集合,您可以通过该集合添加标题、图像等

按钮
集合中,将“种类”属性更改为“Glyph”。 您可以使用
CustomRowCellEdit
事件逐个单元格有条件地应用编辑器。 确保将按钮的
种类
属性设置为“Glyph”,并将
标题
属性设置为所需的任何文本:

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属性


如果有效,请告诉我。

是的,有效。谢谢你,我已经把你的答案标记为有用。几点意见:1。只需将代码封装在if(e.Column==[DeleteColumnName]){…}中,否则它会将所有列转换为按钮。2.我更喜欢我的答案(使用Delete类而不是Glyph),因为我认为使用内置的X比键入“X”更整洁。我还没有弄清楚如何为X使用自定义图像,但这并不重要。对于这样一个简单的任务,DevXPress是一团混乱。。。