質問者
Datagridviewで自動的に行を追加したい

質問
-
すべての返信
-
trapemiyaさんご返答ありがとうございます。
私も以前やったときは普通に最終行に追加されていたので
新しく使い出したVS2010だとこうなのかな?などと思ってみたりしておりました。
以下にコードを示します。
foreach (DataGridViewCell cell in dataGridView1.SelectedCells)
{
cell.Value = new Bitmap("hoge.gif");
dataGridView1.Rows.Add();
dataGridView1[0, cell.RowIndex + 1].Selected = true;
}------------------------------------------------------------------------------------
//
// dataGridView1
//
this.dataGridView1.AllowUserToResizeColumns = false;
this.dataGridView1.AllowUserToResizeRows = false;
this.dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
this.dataGridView1.Location = new System.Drawing.Point(12, 71);
this.dataGridView1.MultiSelect = false;
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersWidthSizeMode = System.Windows.Forms.DataGridViewRowHeadersWidthSizeMode.DisableResizing;
this.dataGridView1.RowTemplate.Height = 21;
this.dataGridView1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect;
this.dataGridView1.Size = new System.Drawing.Size(250, 150);
this.dataGridView1.TabIndex = 0;
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
//
// Column1
//
this.Column1.HeaderText = "列1";
this.Column1.Name = "Column1";
this.Column1.Resizable = System.Windows.Forms.DataGridViewTriState.False;
//
// Column2
//
this.Column2.HeaderText = "列2";
this.Column2.Name = "Column2";
this.Column2.Resizable = System.Windows.Forms.DataGridViewTriState.False;------------------------------------------------------------------------------------
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
// 行ヘッダのセル領域を、行番号を描画する長方形とする
// (ただし右端に4ドットのすき間を空ける)
Rectangle rect = new Rectangle(
e.RowBounds.Location.X,
e.RowBounds.Location.Y,
dataGridView1.RowHeadersWidth - 4,
e.RowBounds.Height);// 上記の長方形内に行番号を縦方向中央&右詰めで描画する
// フォントや前景色は行ヘッダの既定値を使用する
TextRenderer.DrawText(
e.Graphics,
(e.RowIndex + 1).ToString(),
dataGridView1.RowHeadersDefaultCellStyle.Font,
rect,
dataGridView1.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}- 編集済み 極小テック 2010年7月4日 17:13 イベント記入漏れ