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

ANSWER (グリフを使用)

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

必ずTextEditRepositoryItemButtonEditのプロパティを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
于 2012-04-25T15:28:06.270 に答える
1

以前に同様の問題に直面したため、上記の回答に追加しただけです。

  1. RepositoryItemButtonEdit ボタンにイメージを使用する場合は、ボタンの Kind プロパティを Glyph に設定することを忘れないでください。
  2. エディター ボタンのキャプションも表示する場合は、ImagePosition を MiddleCenter 以外に設定する必要があります。
  3. ButtonClick イベントを使用して、エディター ボタンの Index プロパティを確認します。
  4. このリンクは、このシナリオに関する興味深い状況を説明しています。

それも役立つことを願っています。

よろしく、 ゾルタン

于 2012-05-31T14:31:32.787 に答える