このページをはてなブックマークに追加このページを含むはてなブックマーク このページをlivedoor クリップに追加このページを含むlivedoor クリップ

  • 追加された行はこの色です。
  • 削除された行はこの色です。
*目次 [#x63fa614]

#contents


*個人的によく使うプロパティ [#a33a7d7d]

-AllowUserToAddRows = False
--*を消す
-ReadOnly = True
--編集不可
-RowHeaderVisible = False
--一番左の列(選択している行に矢印を表示する列)を消す。
-SelectionMode = FullRowSelect
--行全体選択(反転)
-MultiSelect = False
--複数選択不可


*DataGridView vs. ListView [#y853257d]

 ListViewと比べてDataGridViewが有利な点を挙げる。

-プルダウンメニューのセルが作れる。
-ボタンのセルが作れる。
-ハイパーリンクのセルが作れる。
--ListViewの場合、HotTrackingプロパティでアイテム上にマウスポインタが来るとその行全体をハイパーリンク状態に見せかけることはできる。
-任意の列を不可視にできる。
--ListViewでは表示列の後ろにデータを追加しておくことで、不可視のデータを複数持てる。しかし、任意の列で不可視データを持てないので、それを実現したければDataGridViewにするかListViewを継承した自作コントロールを使う必要がある。
-編集可能。DBのデータ入力などに向いている。
-セルが編集可能。DBのデータ入力などに向いている。
-最後の列をぴったり右枠にあわせることができる。
--ListViewの場合、手動で右枠に合わせても、レコードが多くて縦スクロールバーが表示されたとき、それと同時に横スクロールバーも表示されてしまう。

 微妙な違いを次に挙げる。

-列の仕切りにマウスポインタを持っていったときのマウスカーソルが違う。
-列ヘッダの高さが異なる。
-列ヘッダ内に表示される列名の位置が異なる。


*行を追加する。 [#q81f1ac8]

-列がDataGridViewCheckBoxColumn型ならば、True or False

**方法1 [#c0b8c14c]

 DataGridView1.Rows.Add("〜", "〜")

**方法2 [#td15590b]

 DataGridView1.Rows.Add(New [Object]() {"〜", "〜"})


*選択行を削除する。 [#jdc5cc14]

 DataGridView1.Rows.RemoveAt(DataGridView1.CurrentCell.RowIndex)


*選択した行の特定の列をラベルに表示する [#e00e489c]

 Label1.Text = DataGridView1.CurrentRow.Cells(3).Value.ToString

 CurrentRowは選択している行を意味する。Cells()で指定する数値は列番号である。1列目は列番号0、2列目は列番号1のように、0からカウントすることに注意。そして、Valueで指定したセルの値を取得する。


*選択したときに反転していないように見せる [#wbfa34c3]

 DefaultCellStyleプロパティで、SelectionBackColorをBackgroundColor、SelectionForeColorをBlackにすると反転していないように見せかけられる。

 ただし、セルの選択時の点線は見える。


*指定した列でソートする [#cdcd72fa]

 DataGridView1.Sort(カラム名, System.ComponentModel, ListSortDirection.Ascending)
 DataGridView1.Rows(0).Selected = True

 コード解説は次の通り。

-1行目
--Sort()の第1引数がカラム名、第2引数がソートのモード、第3引数が昇順を意味する。
-2行目
--ソートしただけだと選択行が1行目にならないため、強制的にソート後の1行目を選択し直している。