DevExpress XtraGrid - 每行中的图像按钮
本文关键字:图像 按钮 XtraGrid DevExpress | 更新日期: 2023-09-27 18:32:16
我想为每一行添加一个自定义方法,即一个打开的详细信息表单,显示单击按钮的网格行的详细信息。
有什么简单的解决方案吗?
编辑:
我的代码设置按钮样式有什么问题?
Image img = imageList1.Images[5];
repositoryItemButtonEdit1.Buttons.Clear();
repositoryItemButtonEdit1.Buttons.Add(new EditorButton(ButtonPredefines.Left, "View Filter", 16, true, true, true, ImageLocation.Default, img));
repositoryItemButtonEdit1.ButtonPressed += new ButtonPressedEventHandler(repositoryItemButtonEdit1_ButtonPressed);
答案(使用字形)
Image img = imageList1.Images[5];
repositoryItemButtonEdit1.Buttons.Clear();
repositoryItemButtonEdit1.Buttons.Add(
new EditorButton(
ButtonPredefines.Glyph,
"",
16,
true,
true,
true,
ImageLocation.Default,
img
)
);
repositoryItemButtonEdit1.ButtonPressed += newButtonPressedEventHandler(repositoryItemButtonEdit1_ButtonPressed);
最简单的方法是添加一个RepositoryItemButtonEdit
作为列的ColumnEdit
。
请确保将 RepositoryItemButtonEdit 的 TextEdit
属性设置为隐藏,并配置 button 属性,以便它具有图像按钮。
然后处理存储库项的ButtonPressed Event
。
一个简单的事件处理程序可能如下所示:
C#
private void RepositoryItemButtonEdit1_Click(object sender, System.EventArgs e)
{
WhateverClass MyData = (WhateverClass)GridView1.GetFocusedRow();
Form1 frmEdit = new Form1(MyData);
frmEdit.Show();
}
vb.net
Private Sub RepositoryItemButtonEdit1_Click(sender As Object, e As System.EventArgs) Handles RepositoryItemButtonEdit1.Click
Dim MyData As WhateverClass= CType(GridView1.GetFocusedRow(), WhateverClass)
Dim frmEdit As New Form1(MyData)
frmEdit.Show()
End Sub
只是对上述答案的一些补充,因为我之前遇到了类似的问题。
- 如果要将图像用于 RepositoryItemButtonEdit 按钮,请不要忘记将 Button 的 Kind 属性设置为 Glyph。
- 如果还想显示编辑器按钮的标题,则必须将图像位置设置为其他而不是中间中心。
- 我宁愿使用 ButtonClick 事件,并检查编辑器按钮的 Index 属性。 此
- 链接描述了有关此方案的有趣情况。
希望它也会有所帮助。
问候佐尔坦