北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

【VB.NET】 DataGridView への列の追加・・・ Add ではなく Insert

2014-11-18 08:56:41 | 北窓舎
解決に時間がかかっていた処理ができた。

DataGridView に列を追加するのだが、列の順序が思ったとおりにならなかった。

たとえば、5つの列を追加する場合、
Columns.Add を5回繰り返すと、列は
1,2,3,4,5のようには並ばず、
5,1,4,2,3のようになっていた。

うまくいかなかった(Columns.Add を使った)結果は下のとおり。
  

Columns.Add ではなく Columns.Insert を使えば、思ったとおりになった。

【追記/補足 2014-11-18】
  今回は列数・行数を任意に変えられる DataGridView を作っていた。
  列数が変わると、いったん Columns.RemoveAt で全列を削除してから
  新たに Columns.Add で列を追加していた。

  Columns.Add でも1列のみ、2列だけのときは問題がなかったが、
  3列以上になると列の順が思ったとおりではなかった。
  それで Columns.Insert を使ったら、思いどおりの列順となった。

以下は、画像を収める DataGridView(名前は dgv_Image)に5つの列を追加するサンプル。

1.画像を収める列の宣言
  dim imgColumn_0 As New DataGridViewImageColumn
  dim imgColumn_1 As New DataGridViewImageColumn
  dim imgColumn_2 As New DataGridViewImageColumn
  dim imgColumn_3 As New DataGridViewImageColumn
  dim imgColumn_4 As New DataGridViewImageColumn

2.列を5つ追加する
  ' --- Columns.Add ではなく、Columns.Insert を使う
  dgv_Image.Columns.Insert(0, Me.imgColumn_0)
  dgv_Image.Columns.Insert(0, Me.imgColumn_1)
  dgv_Image.Columns.Insert(0, Me.imgColumn_2)
  dgv_Image.Columns.Insert(0, Me.imgColumn_3)
  dgv_Image.Columns.Insert(0, Me.imgColumn_4)
  ' --- 検証のための列ヘッダー
  dgv_Image.Columns(0).HeaderText = "列1"
  dgv_Image.Columns(1).HeaderText = "列2"
  dgv_Image.Columns(2).HeaderText = "列3"
  dgv_Image.Columns(3).HeaderText = "列4"
  dgv_Image.Columns(4).HeaderText = "列5"

3.行を追加し、各セルに画像を収める処理
  (これは省略)

実行すると、下のように期待どおりになった。
  

# 列が1から順に並んでいなくてもいいようなものだが、
  同じフォーム上の別の DataGridView でサムネイル画像を表示しており、
  dgv_Image ではそこから画像を取ってきて表示していた。
  なので、画像の並びがそろわないと困る。

  1次元的な DataGridView から2次元的なそれに画像を収めるときの不一致がこれで解消した。
  単純なことだったが、時間を取られてしまったので、
  似たようなことを考えている人への参考までに(低次元だと笑われそうだが)記事にする次第。

なお、開発環境は次のとおり。
  Windows 8.1(64-bit)
  Visual Studio Pro. 2013 (Update 4)、
  言語は Basic (VB.NET)、
  対象のフレームワークは .NET Framework 4.5


ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・




ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・




Microsoft Visual Studio Professional 2013 通常版
マイクロソフト




Microsoft Visual Studio Professional 2013 アップグレード版
マイクロソフト

コメント    この記事についてブログを書く
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Windows 10 テクニカル・プレ... | トップ | 緊急/臨時 Windows update K... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

北窓舎」カテゴリの最新記事