プロが教える店舗&オフィスのセキュリティ対策術

C#でデータグリッドビューにイベントを登録しようとしているのですが
方法が分からず困っています。
どこかのホームページで以下のように dgv.RowPostPaint += delegate { }
までは良いのですが、中身を以下のように eオブジェクトを使うとエラーになります。
どうすれば、eが使えるのでしょうか?
根本から分かっていないので、すみませんがそこからよろしくお願いいたします。

DataGridView dgv = new DataGridView();
dgv.RowPostPaint += delegate
{
// 行ヘッダのセル領域を、行番号を描画する長方形とする
// (ただし右端に4ドットのすき間を空ける)
Rectangle rect = new Rectangle(
e.RowBounds.Location.X,
e.RowBounds.Location.Y,
dgv.RowHeadersWidth - 4,
e.RowBounds.Height);

// 上記の長方形内に行番号を縦方向中央&右詰めで描画する
// フォントや前景色は行ヘッダの既定値を使用する
TextRenderer.DrawText(
e.Graphics,
(e.RowIndex + 0).ToString(),
dgv.RowHeadersDefaultCellStyle.Font,
rect,
dgv.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
};

A 回答 (1件)

DataGridViewをコードで生成しているようですが、試しにフォーム上に、ツールボックスからDataGridViewコントロールをドラッグして、ドロップしたDataGridViewを選択して、プロパティウィンドウで上の稲妻ボタンをクリックしてみてください。


するとDataGridViewのイベントが表示覚ますのでRowPostPaintイベントでダブルクリックしてみてください。
そのあとでForm1.Designer.csの中でDataGridView1のRowPostPaintイベントの書き方、またForm1.csの中でのイベントに登録されたメソッドのひな型を参考にすればわかると何となくわかると思います。

次のMSDNのサイトのサンプルコードも参考になるかと思います。
http://msdn.microsoft.com/ja-jp/library/system.w …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!