Visual C を使用して、DataGrid コントロールをオブジェクトまたは構造体の ArrayList に連結する方法です。NET または Visual C 2005

文書翻訳 文書翻訳
文書番号: 816164
すべて展開する | すべて折りたたむ

目次

概要

この資料でにバインドする方法について説明します、 ArrayList クラスのオブジェクトには、 データ グリッド コントロールです。この例を含む Windows フォームを使用します。 データ グリッド オブジェクトのプロパティを表示するのには、コントロールの値し、4 つのコマンドが含まれています。行を参照するためのボタンが データ グリッド コントロールです。

要件

これ資料では、次のトピックに精通している想定しています。
  • Visual C.NET または Visual C 2005 のプログラミングに関する概念
次の一覧は、推奨されるハードウェア、ソフトウェアです、ネットワーク インフラストラクチャ、および必要な service pack:
  • Microsoft Visual の C++。NET または Microsoft Visual C 2005

クラスのデザイン

クラスにコントロールをバインドするには、クラスにプロパティが必要アクセサー。任意のプロパティをバインドする必要があります、 取得メソッド 関数とは 設定メソッド 関数です。使用して、プロパティの実装は、 取得メソッド 関数とは 設定メソッド 関数は、コンパイラこれらプロパティであることを通知します。機能の使用、 _ _property キーワードです。この資料で使用されるサンプル クラスには 3 つのメンバーがあります。
__gc class Guitar
{
private:
        String *make;
        String *model;
        short year;
public:
    Guitar(void);
    ~Guitar(void);
        
        Guitar(String *strMake, String *strModel, short shYear)
        {
            make = strMake;
            model = strModel;
            year = shYear;
        }

        __property String* get_Make() 
        {
            return make; 
        }
        __property void set_Make(String* val)
        {
            make = (val); 
        }
        __property String* get_Model()
        { 
            return model; 
        }
        __property void set_Model(String* val)
        {
            model = (val); 
        }

        __property short get_Year()
        { 
            return year; 
        }
        __property void set_Year(short shValue)
        {
            year = shValue; 
        }
};

ArrayList にクラスのインスタンスを追加します。

インスタンスを作成し、それらを追加するのには ArrayList クラスは、次の手順を実行します。
  1. 宣言します。 ArrayList クラスは次のとおり。
    private: ArrayList *arrayList;
  2. で、 FormLoad イベント ハンドラーは、クラスのインスタンスを作成します。インスタンスを追加、 ArrayList クラスは次のとおり。
    //Create an ArrayList.
    arrayList = new ArrayList();
    
    //Populate the array list.
    arrayList->Add(new guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new guitar(S"Guild",S"Bluesbird",1958));
    

ArrayList を DataGrid にバインドします。

後、 ArrayList クラスが設定されます、 データ ソース プロパティが データ グリッド 制御するのには ArrayList クラスです。列には、 データ グリッド コントロールに表示される範囲内のプロパティに基づいてプロパティのアクセサーが存在します。
// Bind the Array List to DataGrid.
      dataGrid1->DataSource = arrayList;

ArrayList からの移動します。

使用できます、 CurrencyManager クラスを移動するには ArrayList クラスです。これを行うには、[変数を宣言、 CurrencyManager クラスは次のとおり。
private: CurrencyManager *currencyManager;
関連付ける、 CurrencyManager クラスのでは BindingContext コントロールの関数 (ここでは、 ArrayList).
currencyManager = (CurrencyManager*)dataGrid1->BindingContext
->Item[arrayList];
は、 CurrencyManager クラスが、 位置 メンバーを反復処理するために使用できるプロパティは、 ArrayList クラスです。追加するには、またはの現在の値から減算することによって、 位置 関数の行でを移動することができます、 データ グリッド コントロールです。
//Move forward one element.
currencyManager.Position++;
//Move back one element.
currencyManager.Position--;
//Move to the beginning.
currencyManager.Position = 0;
//Move to the end.
currencyManager.Position = arrayList.Count - 1;
				

ステップ バイ ステップの例

  1. Microsoft Visual Studio を起動します。NET 2003 または Microsoft の Visual Studio 2005。
  2. で、 ファイル メニューのポイント新しい、し プロジェクト.
  3. クリックしてください。Visual C プロジェクト 下にあります。 [プロジェクトの種類、し Windows フォーム アプリケーション (。NET) 下にあります。 テンプレート.

    メモ Visual Studio 2005 年にをクリックします。 Visual C 下にあります。 [プロジェクトの種類、し Windows フォーム アプリケーション 下にあります。 テンプレート.
  4. で、 名前 テキスト ボックス、入力Q816164、し [OK].
  5. ソリューション エクスプ ローラーで、クラス ビューに切り替えます。これを行うには、クリックしてください。 クラス ビュー で、 ビュー メニューです。
  6. 右クリックします。 Q816164、ポイント追加、し クラスを追加します。.
  7. で、 クラスを追加します。 ダイアログ ボックス、クリックして 一般 C++ クラス 下にあります。 テンプレート,し ファイルを開く.

    メモ Visual Studio 2005 年にをクリックします。 C++ の Cass 下にあります。 テンプレート、し 追加.
  8. 汎用 C++ クラス ウィザードでを入力します。ギター で、 クラス名 テキスト ボックスとをクリックして、 終了日.は、 ギター クラスは次のとおりです。
    #pragma once
    
    class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
    メモ Visual Studio 2005 では、コードは、次のとおりです。
    #pragma once
    
    ref class Guitar
    {
    public:
    	Guitar(void);
    };
    
    確認するのには ギター Managed Extensions for C++ のクラスのクラスは、追加の _ _gc キーワード前に、 ギター クラスは、次のよう:
    __gc class Guitar
    {
    public:
    	Guitar(void);
    	~Guitar(void);
    };
    
  9. 既存のコード、Guitar.h ファイルに置き換えます、次のコード:
    #pragma once
    
    using namespace System;
    __gc class Guitar
    {
    private:
            String *make;
            String *model;
            short year;
    public:
        Guitar(void);
        ~Guitar(void);
            
            Guitar(String *strMake, String *strModel, short shYear)
            {
                make = strMake;
                model = strModel;
                year = shYear;
            }
    
            __property String* get_Make() 
            {
                return make; 
            }
            __property void set_Make(String* val)
            {
                make = (val); 
            }
            __property String* get_Model()
            { 
                return model; 
            }
            __property void set_Model(String* val)
            {
                model = (val); 
            }
    
            __property short get_Year()
            { 
                return year; 
            }
            __property void set_Year(short shValue)
            {
                year = shValue; 
            }
    };
    
    
    メモ 共通言語ランタイム サポートのコンパイラ オプションを追加する必要があります (//clr:oldsyntax) 正常に上記のコード サンプルをコンパイルする Visual C 2005 で。Visual C 2005 で、共通言語ランタイム サポート コンパイラ オプションを追加するには、次の手順を実行します。
    1. クリックしてください。 プロジェクト、し <projectname></projectname> プロパティ.

      メモ <projectname></projectname> プロジェクトの名前のプレース ホルダーです。
    2. 展開 構成プロパティ、し 全般.
    3. 選択する] をクリックします。 共通言語ランタイム サポート、古い構文 (または/clr:oldsyntax) で、 共通言語ランタイムのサポート 右側のウィンドウでの設定のプロジェクトについてをクリックしてください 適用、し [OK].
    共通言語ランタイムの詳細についてはコンパイラ オプションをサポートは、次のマイクロソフト Web サイトを参照してください。
    /clr (共通言語ランタイムのコンパイル)
    http://msdn2.microsoft.com/en-us/library/k8d11d4s.aspx
  10. Guitar.h のコード ウィンドウを閉じるし、フォーム デザイナーに切り替えます。
  11. 追加します。 データ グリッド Form1 に制御します。サイズは、 データ グリッド 4 に収まるようにコントロール次の 3 つの行と列。
  12. 4 を追加します。 ボタン Form1 に、コントロールし、並べ替え、ボタンを水平方向にします。
  13. 変更は、 テキスト プロパティ Button1 するには次へ.
  14. 変更は、 テキスト プロパティ Button2 するには.
  15. 変更は、 テキスト プロパティ Button3 するには最初.
  16. 変更は、 テキスト プロパティ [Button4] するには最後.
  17. [Form1.h ファイルを開くし、先頭に次のコードを追加します。
    #include "Guitar.h"
  18. 次のコードを追加、 Form1 クラス:
    private: System::Collections::ArrayList *arrayList;	
    private: System::Windows::Forms::CurrencyManager *currencyManager;	
    
  19. フォーム デザイナーに切り替えます、右クリック form1,し プロパティ.
  20. クリックして、 イベント アイコンをし、ダブルクリック、 ロード イベントを追加するのには Form1_Load イベントにコードします。
  21. 次のコードを貼り付けます、 Form1_Load イベント:
    //Create an arraylist.
    arrayList = new ArrayList();
    
    arrayList->Add(new Guitar(S"GibSon",S"Les Paul",1958));
    arrayList->Add(new Guitar(S"Fender",S"Jazz Bass",1958));
    arrayList->Add(new Guitar(S"Guild",S"Bluesbird",1958));
    
                
     currencyManager = dynamic_cast <CurrencyManager*>
                     (dataGrid1->BindingContext->Item[arrayList]);
    // Bind the Array List to DataGrid.
    dataGrid1->DataSource = arrayList;
    
  22. フォーム デザイナーに切り替えます。
  23. ダブルクリック 次へ、し、追加の次のコードには、 button1_Click イベント:
    //Move to the next position.
    currencyManager->Position++;
    
  24. ダブルクリック 、し、追加の次のコードには、 button2_Click イベント:
    //Move to the previous position.
    currencyManager->Position--;
    
  25. ダブルクリック 最初、し、追加の次のコードには、 button3_Click イベント:
    //Move to the first position.
    currencyManager->Position =0;
    
  26. ダブルクリック 最後、し、追加の次のコードには、 button4_Click イベント:
    //Move to the last position.
    currencyManager->Position = currencyManager->Count -1;
    
  27. ビルドし、プロジェクトを実行します。
  28. 行を移動するのには、コマンド ボタンをクリックして、データ グリッド コントロールです。オブジェクトの値を編集できる場合を確認します。必要があります。

関連情報

についてデータのコンシューマーを Windows フォーム上で、次のマイクロソフト開発者向けの Web サイトを参照してください。
.aspx の http://msdn2.microsoft.com/en-us/library/aa983578 (VS.71)

プロパティ

文書番号: 816164 - 最終更新日: 2011年7月28日 - リビジョン: 4.0
キーワード:?
kbhowto kbhowtomaster kbdatabinding kbcollections kbmt KB816164 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:816164
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com