|
分類:[C#]
C#のDataGridViewで一つのセルに複数行表示したく
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
この様に設定しています。
次のように行を代入します。
///////////////////////////////////////////////////////////////////////////////////////////////////////
string[] s = new string[]{"あいうえお" + Environment.NewLine +
"かきくけこ",
"あいうえおかきくけこさしすせそたちつてとなにぬねの" + Environment.NewLine +
"アイウエオ",
"あいうえおかきくけこ"};
for (int x = 0; x < s.Length; x++)
{
dataGridView1.Rows.Add(s[x]);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
しかし、以下の様に表示させたいのですが
-----------------------------------------------
あいうえお
かきくけこ
-----------------------------------------------
あいうえおかきくけこさしすせそたちつてとなにぬねの
アイウエオ
-----------------------------------------------
あいうえおかきくけこ
-----------------------------------------------
思わぬところ(2行目)で改行されてしまい以下のようになってしまいます。
-----------------------------------------------
あいうえお
かきくけこ
-----------------------------------------------
あいうえおかきくけこさしすせそたちつて
となにぬねの
アイウエオ
-----------------------------------------------
あいうえおかきくけこ
-----------------------------------------------
また、3行目は1行なのにも関わらず、前の行の設定に引っ張られて
行の高さがフィットせず、余白が多くなってしまいます。
2行目をしっかり、2行で表示し、全ての行の高さを内容に合わせてフィットさせるようにするにはどうしたらよいでしょうか?
よろしくお願い申し上げます。
以下に、DataGridViewの他の設定を明記します。
///////////////////////////////////////////////////////////////////////////////////////////////////////
//
// dataGridView1
//
this.dataGridView1.AllowUserToAddRows = false;
this.dataGridView1.AllowUserToDeleteRows = false;
this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells;
this.dataGridView1.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dataGridView1.ColumnHeadersVisible = false;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("MS UI Gothic", 15F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(128)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridView1.DefaultCellStyle = dataGridViewCellStyle2;
this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dataGridView1.Location = new System.Drawing.Point(0, 0);
this.dataGridView1.Margin = new System.Windows.Forms.Padding(0);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.RowHeadersVisible = false;
this.dataGridView1.RowTemplate.Height = 21;
this.dataGridView1.Size = new System.Drawing.Size(550, 573);
this.dataGridView1.TabIndex = 0;
|