0

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

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

编辑:

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

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); 
4

2 回答 2

1

最简单的方法是添加一个RepositoryItemButtonEdit作为ColumnEdit列的。

确保TextEdit将 RepositoryItemButtonEdit 的属性设置为隐藏,并配置按钮属性,使其具有您的图像按钮。

然后处理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
于 2012-04-25T15:28:06.270 回答
1

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

  1. 如果您想为 RepositoryItemButtonEdit 按钮使用 Image,请不要忘记将 Button 的 Kind 属性设置为 Glyph。
  2. 如果您还想显示编辑器按钮的 Caption,则必须将 ImagePosition 设置为 MiddleCenter 以外的位置。
  3. 我宁愿使用 ButtonClick 事件,并检查编辑器按钮的 Index 属性。
  4. 这个链接描述了关于这个场景的一个有趣的情况。

希望它也会有所帮助。

问候,佐尔坦

于 2012-05-31T14:31:32.787 回答