繁体   English   中英

DevExpress XtraGrid - 每行中的ImageButton

[英]DevExpress XtraGrid - ImageButton in each row

我想为每一行添加一个自定义方法,即一个打开的详细信息表单,显示单击该按钮的网格行的详细信息。

那有什么简单的解决方案吗?

编辑:

我的代码设置按钮样式有什么问题?

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属性设置为hidden,并配置buttons属性以使其具有图像按钮。

然后处理存储库项的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

只是对上面答案的一些补充,因为我之前遇到过类似的问题。

  1. 如果要对RepositoryItemButtonEdit按钮使用Image,请不要忘记将Button的Kind属性设置为Glyph。
  2. 如果您还要显示编辑器按钮的标题,则必须将ImagePosition设置为其他的MiddleCenter。
  3. 我宁愿使用ButtonClick事件,并检查编辑器按钮的Index属性。
  4. 链接描述了有关此方案的有趣情况。

希望它也会有所帮助。

此致,佐尔坦

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM