Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて

DataGridView コントロールは、DataGrid コントロールに代わる新しいコントロールです。 DataGridView コントロールには、DataGrid コントロールに不足している基本的および高度な機能が数多く用意されています。 さらに、DataGridView コントロールの場合はそのアーキテクチャにより、DataGrid コントロールよりもはるかに簡単に拡張およびカスタマイズすることができます。

次の表では、DataGrid コントロールに不足していて、DataGridView コントロールで使用できる主な機能についていくつか説明します。

DataGridView コントロールの機能 説明
複数の列型 DataGridView コントロールには、DataGrid コントロールよりも多くの組み込み列型が用意されています。 これらの列型は、最も一般的なシナリオのニーズを満たしていますが、DataGrid コントロール内の列型よりも簡単に拡張または置換することができます。 詳細については、「Windows フォーム DataGridView コントロールの列型」を参照してください。
データを表示する複数の方法 DataGrid コントロールは、外部データ ソースからのデータの表示に限定されています。 しかし、DataGridView コントロールを使用すると、コントロールに格納されバインドされていないデータを表示する、バインドされたデータ ソースからのデータを表示する、またはバインドおよび非バインドのデータを一緒に表示することができます。 DataGridView コントロールに仮想モードを実装して、カスタム データ管理を実現することもできます。 詳細については、「Windows フォーム DataGridView コントロールでのデータ表示モード」を参照してください。
データの表示をカスタマイズする複数の方法 DataGridView コントロールには、データの形式を設定して表示する方法を指定するためのプロパティとイベントが多数用意されています。 たとえば、セル、行、列の外観をそれらが格納されているデータに応じて変更したり、あるデータ型のデータを別の型の同等のデータに置き換えたりすることができます。 詳細については、Windows フォーム DataGridView コントロールでのデータの書式設定に関するページを参照してください。
セル、行、列、ヘッダーの外観と動作を変更するための複数のオプション DataGridView コントロールを使用すると、個々のグリッド コンポーネントをさまざまな方法で操作できます。 たとえば、次のことができます: 行と列を固定してスクロールできないようにする。行、列、およびヘッダーを非表示にする。行、列、およびヘッダーのサイズを調整する方法を変更する。ユーザーが選択する方法を変更する。個々のセル、行、および列にヒントとショートカット メニューを用意する。

DataGrid コントロールは、下位互換性のため、および特別なニーズに対応するために残されています。 ほぼすべての目的において、DataGridView コントロールを使用する必要があります。 DataGrid コントロールで使用できて、DataGridView コントロールでは使用できない唯一の機能は、1 つのコントロール内の 2 つの関連するテーブルからの情報の階層表示です。 マスターと詳細の関係にある 2 つのテーブルの情報を表示するには、2 つの DataGridView コントロールを使用する必要があります。

DataGridView コントロールへのアップグレード

カスタマイズのないシンプルなデータバインド シナリオで DataGrid コントロールを使用している既存のアプリケーションがある場合は、古いコントロールを新しいコントロールに置き換えるだけです。 どちらのコントロールでも標準の Windows フォーム データバインディング アーキテクチャが使用されているため、追加の構成を行わなくても、DataGridView コントロールにはバインドされたデータが表示されます。 ただし、データバインディングの機能強化の利用を検討することをお勧めします。そのためには、ご利用のデータを BindingSource コンポーネントにバインドします。これにより、DataGridView コントロールにバインドできるようにします。 詳細については、BindingSource コンポーネントに関するページを参照してください。

DataGridView コントロールのアーキテクチャは全く新しいものであるため、DataGridView コントロールで DataGrid のカスタマイズを使用できるようにするための単純な変換パスはありません。 ただし、DataGridView コントロールでは、DataGrid のカスタマイズの多くは不要です。新しいコントロールでは組み込み機能を利用できるからです。 DataGridView コントロールで使用したい DataGrid コントロールのためにカスタム列型を作成した場合は、新しいアーキテクチャを使用してそれらをもう一度実装する必要があります。 詳細については、「Windows フォーム DataGridView コントロールのカスタマイズ」を参照してください。

関連項目