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