C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: DataGridViewのRowTemplateがきかない


(過去ログ 142 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■83379 / inTopicNo.1)  DataGridViewのRowTemplateがきかない
  
□投稿者/ すず (1回)-(2017/03/20(Mon) 05:14:11)

分類:[C#] 

お世話になります。

DataGridViewのRowTemplateが有効にならない事象で困っています。
以下のソースでAddメソッドで行を追加した場合有効になりますが、
AddRangeメソッドで行追加した場合有効になりません。

AddRangeでも有効にする場合はどうすればよいでしょうか?

■ソース
// FormにDataGridView(dgv)がある。
// 列追加
for (int i = 0; i < 3; i++)
{
dgv.Columns.Add("col" + i, "col" + i);
}

// RowTemplateの指定
dgv.RowTemplate.Height = 100;

// 1.Addによる行追加
// →RowTemplateは有効となる。
//dgv.Rows.Add();
//dgv.Rows.Add();
//dgv.Rows.Add();

// 2.AddRangeによる行追加
// →RowTemplateは有効にならない。
//DataGridViewRow r1 = new DataGridViewRow();
//r1.CreateCells(dgv);
//r1.SetValues(new object[] { "111", "222", "333" });
//DataGridViewRow r2 = new DataGridViewRow();
//r2.CreateCells(dgv);
//r2.SetValues(new object[] { "444", "555", "666" });
//this.dgv.Rows.AddRange(new DataGridViewRow[] { r1, r2 });

# バインドを・・・って話なんですけど既にAddRangeで作成されていますので変更は出来ません。。。

引用返信 編集キー/
■83386 / inTopicNo.2)  Re[1]: DataGridViewのRowTemplateがきかない
□投稿者/ Hongliang (513回)-(2017/03/20(Mon) 15:09:52)
new DataGridViewRow()の代わりに、dgv.RowTemplate.Clone()するようにすればいいんでは。
引用返信 編集キー/
■83388 / inTopicNo.3)  Re[2]: DataGridViewのRowTemplateがきかない
□投稿者/ はる (1回)-(2017/03/20(Mon) 19:58:53)
Hongliang さん

ありがとうございました。
教えていただいた内容でいけました。


DataGridViewRow r1 = (DataGridViewRow)dgv.RowTemplate.Clone();
r1.CreateCells(dgv);
r1.SetValues(new object[] { "111", "222", "333" });
DataGridViewRow r2 = (DataGridViewRow)dgv.RowTemplate.Clone();
r2.CreateCells(dgv);
r2.SetValues(new object[] { "444", "555", "666" });
this.dgv.Rows.AddRange(new DataGridViewRow[] { r1, r2 });
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -