チュートリアル : 単純データ バインディングをサポートするユーザー コントロールの作成
更新 : 2007 年 11 月
Windows アプリケーションのフォームにデータを表示する場合は、ツールボックスから既存のコントロールを選択するか、またはアプリケーションが標準コントロールでは提供できない機能を必要とする場合は、カスタム コントロールを記述できます。このチュートリアルでは、DefaultBindingPropertyAttribute を実装するコントロールを作成する方法を示します。DefaultBindingPropertyAttribute を実装するコントロールには、データにバインドできるプロパティを 1 つ含めることができます。このようなコントロールは、TextBox または CheckBox に似ています。
コントロールの作成の詳細については、「デザイン時の Windows フォーム コントロールの開発」を参照してください。
データ バインディングのシナリオで使用するためのコントロールを作成するときは、次のいずれかのデータ バインディング属性を実装する必要があります。
データ バインディング属性の使用 |
---|
単一のデータ列またはプロパティを表示する TextBox のような DefaultBindingPropertyAttribute を簡単なコントロールに実装します。このチュートリアルでは、このプロセスについて説明します。 |
データの一覧またはテーブルを表示する DataGridView のような ComplexBindingPropertiesAttribute をコントロールに実装します。詳細については、「チュートリアル : 複合データ バインディングをサポートするユーザー コントロールの作成」を参照してください。 |
データの一覧またはテーブルを表示しますが、単一の列またはプロパティを表示する必要もある ComboBox のような LookupBindingPropertiesAttribute をコントロールに実装します。詳細については、「チュートリアル : 検索データ バインドをサポートするユーザー コントロールの作成」を参照してください。 |
このチュートリアルでは、テーブルの単一の列のデータを表示する簡単なコントロールを作成します。この例では、Northwind サンプル データベースの Customers テーブルの Phone 列を使用します。この簡単なユーザー コントロールは、MaskedTextBox を使用し、電話番号にマスクを設定して、顧客の電話番号を標準の電話番号形式で表示します。
このチュートリアルでは、次の作業を行う方法について説明します。
新しい Windows アプリケーションを作成します。
新しいユーザー コントロールをプロジェクトに追加します。
ユーザー コントロールをビジュアルに設計します。
DefaultBindingProperty 属性を実装します。
データ ソース構成ウィザードを使用して、データセットを作成します。
[データ ソース] ウィンドウで [Phone] 列が新しいコントロールを使用するように設定します。
フォームを作成して、新しいコントロールにデータを表示します。
前提条件
このチュートリアルを実行するための要件は次のとおりです。
- Northwind サンプル データベースにアクセスします。詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
Windows アプリケーションの作成
最初に Windows アプリケーションを作成します。
新しい Windows プロジェクトを作成するには
Visual Studio の [ファイル] メニューの [新しいプロジェクト] をクリックします。
プロジェクトに SimpleControlWalkthrough という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「Windows ベースのアプリケーションの作成」を参照してください。
SimpleControlWalkthrough プロジェクトが作成され、ソリューション エクスプローラに追加されます。
プロジェクトへのユーザー コントロールの追加
このチュートリアルではユーザー コントロールからデータ バインディング可能な簡単なコントロールを作成するので、ユーザー コントロールの項目を SimpleControlWalkthrough プロジェクトに追加します。
プロジェクトにユーザー コントロールを追加するには
[プロジェクト] メニューの [ユーザー コントロールの追加] をクリックします。
[ファイル名] 領域に「PhoneNumberBox」と入力し、[追加] をクリックします。
PhoneNumberBox コントロールが ソリューション エクスプローラに追加され、デザイナが開きます。
PhoneNumberBox コントロールの設計
このチュートリアルでは、既存の MaskedTextBox を拡張して PhoneNumberBox コントロールを作成します。
PhoneNumberBox コントロールを設計するには
ツールボックスからユーザー コントロールのデザイン サーフェイスに MaskedTextBox をドラッグします。
ドラッグした MaskedTextBox のスマート タグを選択し、[マスクの設定] をクリックします。
[定型入力] ダイアログ ボックスの [電話番号] を選択し、[OK] をクリックしてマスクを設定します。
必要なデータ バインディング属性の追加
データ バインディングをサポートする簡単なコントロールに対しては DefaultBindingPropertyAttribute を実装します。
DefaultBindingProperty 属性を実装するには
PhoneNumberBox コントロールをコード ビューに切り替えます。[表示] メニューの [コード] をクリックします。
PhoneNumberBox のコードを次のコードに置き換えます。
<System.ComponentModel.DefaultBindingProperty("PhoneNumber")> _ Public Class PhoneNumberBox Public Property PhoneNumber() As String Get Return MaskedTextBox1.Text End Get Set(ByVal value As String) MaskedTextBox1.Text = value End Set End Property End Class
using System.Windows.Forms; namespace CS { [System.ComponentModel.DefaultBindingProperty("PhoneNumber")] public partial class PhoneNumberBox : UserControl { public string PhoneNumber { get{ return maskedTextBox1.Text; } set{ maskedTextBox1.Text = value; } } public PhoneNumberBox() { InitializeComponent(); } } }
[ビルド] メニューの [ソリューションのビルド] をクリックします。
データベースからデータ ソースを作成する
この手順では、データ ソース構成ウィザードを使用して、Northwind サンプル データベースの Customers テーブルに基づいてデータ ソースを作成します。接続を作成するには、Northwind サンプル データベースにアクセスできる必要があります。Northwind サンプル データベースのセットアップの詳細については、「方法 : サンプル データベースをインストールする」を参照してください。
データ ソースを作成するには
[データ] メニューの [データ ソースの表示] をクリックします。
[データ ソース] ウィンドウで、[新しいデータ ソースの追加] をクリックしてデータ ソース構成ウィザードを起動します。
[データソースの種類を選択] ページで、[データベース] をクリックし、[次へ] をクリックします。
[データ接続の選択] ページで、次のいずれかの操作を行います。
Northwind サンプル データベースへのデータ接続がドロップダウン リストに表示されている場合は選択します。
または
[新しい接続] を選択して [接続の追加] または [接続の変更] ダイアログ ボックスを表示します。詳細については、「[接続の追加] ダイアログ ボックスと [接続の変更] ダイアログ ボックス (一般)」を参照してください。
データベースにパスワードが必要な場合は、該当するオプションを選択して重要情報を含め、[次へ] をクリックします。
[アプリケーション構成ファイルに接続文字列を保存] ページで、[次へ] をクリックします。
[データベース オブジェクトの選択] ページの [テーブル] ノードを展開します。
Customers テーブルを選択し、[完了] をクリックします。
プロジェクトに NorthwindDataSet が追加され、[データ ソース] ウィンドウに Customers テーブルが表示されます。
PhoneNumberBox コントロールを使用するように [Phone] 列を設定する
[データ ソース] ウィンドウでは、フォームにコントロールをドラッグする前に作成するコントロールを設定できます。
PhoneNumberBox コントロールにバインドするように [Phone] 列を設定するには
デザイナで Form1 を開きます。
[データ ソース] ウィンドウの [Customers] ノードを展開します。
[Customers] ノードのドロップダウン矢印をクリックし、コントロール一覧の [Details] を選択します。
[Phone] 列のドロップダウン矢印をクリックし、[Customize] をクリックします。
[データ UI カスタマイズ オプション] ダイアログ ボックスの [関連付けられたコントロール] の一覧の [PhoneNumberBox] を選択します。
[Phone] 列のドロップダウン矢印をクリックし、[PhoneNumberBox] をクリックします。
フォームへのコントロールの追加
[データ ソース] ウィンドウからフォームに項目をドラッグして、データ バインディング コントロールを作成します。
フォームにデータ バインディング コントロールを作成するには
[データ ソース] ウィンドウからフォームにメインの [Customers] ノードをドラッグし、PhoneNumberBox コントロールを使用して Phone 列にデータが表示されていることを確認します。
説明のラベルが付いたデータ バインディング コントロールとレコード間を移動するためのツール ストリップ (BindingNavigator) がフォームに表示されます。NorthwindDataSet、CustomersTableAdapter、BindingSource、および BindingNavigator がコンポーネント トレイに表示されます。
アプリケーションの実行
アプリケーションを実行するには
- F5 キーを押してアプリケーションを実行します。
次の手順
アプリケーションの要件に応じて、データ バインディングをサポートするコントロールの作成後に、追加の操作を実行できます。この後に実行できる一般的な手順を次に示します。
他のアプリケーションで再利用するために、カスタム コントロールをコントロール ライブラリに格納します。詳細については、「Windows コントロール ライブラリ テンプレート」を参照してください。
より複雑なデータ バインディングのシナリオをサポートするコントロールを作成します。詳細については、「チュートリアル : 複合データ バインディングをサポートするユーザー コントロールの作成」および「チュートリアル : 検索データ バインドをサポートするユーザー コントロールの作成」を参照してください。
参照
処理手順
方法 : [データ ソース] ウィンドウからドラッグしたときに作成されるコントロールを設定する