Alpaca Games Blog(旧AlpacaTech)

ゲーム作る系 草食動物の備忘録

DataGridViewコントロールで行番号を表示

DataGridViewコントロールで行番号を表示するには?[2.0のみ、C#VB] - @IT

http://www.atmarkit.co.jp/fdotnet/dotnettips/506dgvlinenum/dgvlinenum.html

を C++/CLIで書いたのメモ

private: System::Void dataGridView1_RowPostPaint(System::Object^ sender, System::Windows::Forms::DataGridViewRowPostPaintEventArgs^ e)

{

DataGridView^ dgv = (DataGridView^)sender;

// 行ヘッダのセル領域を、行番号を描画する長方形とする

// (ただし右端に4ドットのすき間を空ける)

System::Drawing::Rectangle rect = System::Drawing::Rectangle(

e->RowBounds.Location.X,

e->RowBounds.Location.Y,

dgv->RowHeadersWidth - 4,

e->RowBounds.Height);

// 上記の長方形内に行番号を縦方向中央&右詰めで描画する

// フォントや前景色は行ヘッダの既定値を使用する

TextRenderer::DrawText(

e->Graphics,

(e->RowIndex + 1).ToString(),

dgv->RowHeadersDefaultCellStyle->Font,

rect,

dgv->RowHeadersDefaultCellStyle->ForeColor,

TextFormatFlags::VerticalCenter | TextFormatFlags::Right);

}

#include <windows.h>

してた場合、

#define DrawText DrawTextA みたいなことになってるので

どこかで

#undef DrawText

やらないと駄目っぽい><


おまけ

第2回 DataGridViewコントロールでマインスイーパ - @IT

http://www.atmarkit.co.jp/fdotnet/vblab/gridlab_02/gridlab_02_01.html