DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DataGridComboBoxColumn Class

注意:DataGridComboBoxColumnクラスの最新版は、「DataGridにComboBoxを表示可能な列を作る」からダウンロードできます。

「DataGridComboBoxColumnクラス」は、ComboBoxをDataGrid(System.Windows.Forms.DataGrid)に表示するためのクラスです。このクラスは、以下に示すページで紹介されているコードを参考にして作成しました。

本当なら、「Generating Combo Box in DataGrid Column」のようにDataGridColumnStyleクラスからの派生クラスとすべきかもしれませんが、ここでは手を抜いてDataGridTextBoxColumnクラスからの派生クラスとしています。

このDataGridComboBoxColumnクラスは、コンストラクタでComboBoxのDataSource、DisplayMember、ValueMemberプロパティに設定するデータを指定して使用します。ComboBoxとDataGridに表示されるデータは、DisplayMemberで指定されたデータになりますが、実際のデータはValueMemberで指定されたデータとなります。表示するデータと実際に使われるデータが同じでよければ、DisplayMemberとValueMemberを同じにしてもかまいません。また、DataSourceにはDataViewオブジェクトを指定します。

なお、DataGridComboBoxColumnクラスの仕様は次のようなものです。

  • コンボボックスのDropDownStyleプロパティはComboBoxStyle.DropDownListです。
  • ReadOnlyの時は、コンボボックスが表示されません。
  • ComboBoxのDataSourceをDataGridで使用しているDataSourceと同じにすると、不都合が起こるかもしれません。
  • ComboBoxをキーで操作することはできません。
  • ComboBoxのValueMemberに登録されていないデータがDataGridで使用されている場合、DBNullとして表示されます。

ダウンロード

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。