方法: Windows フォーム DataGrid コントロールに表示されるデータを実行時に変更する

注意

DataGridView コントロールは、DataGrid コントロールに代わると共に追加の機能を提供します。ただし、DataGrid コントロールは、下位互換性を保つ目的および将来使用する目的で保持されます。 詳細については、「Windows フォームの DataGridView コントロールと DataGrid コントロールの違いについて」を参照してください。

デザイン時機能を使用して Windows フォームの DataGrid を作成した後で、実行時にグリッドの DataSet オブジェクトの要素を動的に変更することもできます。 これには、テーブルの個々の値に対する変更や、DataGrid コントロールにバインドされたデータ ソースの変更が含まれます。 個々の値に対する変更は、DataGrid コントロールではなく、DataSet オブジェクトを介して行われます。

プログラムによってデータを変更するには

  1. DataSet オブジェクトの目的のテーブルを指定し、そのテーブルの目的の行とフィールドを指定して、セルに新しい値を設定します。

    注意

    DataSet の最初のテーブルまたはテーブルの最初の行を指定するには、0 を使用します。

    次の例は、Button1 がクリックされたときに、データセットの最初のテーブルの最初の行の 2 番目のエントリを変更する方法を示しています。 DataSet (ds) および Tables (0 および 1) は事前に作成されています。

    Protected Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
       ds.tables(0).rows(0)(1) = "NewEntry"  
    End Sub  
    
    private void button1_Click(object sender, System.EventArgs e)  
    {  
       ds.Tables[0].Rows[0][1]="NewEntry";  
    }  
    
    private:
       void button1_Click(System::Object^ sender, System::EventArgs^ e)  
       {  
          dataSet1->Tables[0]->Rows[0][1] = "NewEntry";  
       }  
    

    (Visual C#、Visual C++) フォームのコンストラクターに次のコードを配置して、イベント ハンドラーを登録します。

    this.button1.Click += new System.EventHandler(this.button1_Click);  
    
    this->button1->Click +=  
       gcnew System::EventHandler(this, &Form1::button1_Click);  
    

    実行時に、SetDataBinding メソッドを使用すると、DataGrid コントロールを別のデータ ソースにバインドできます。 たとえば、複数の ADO.NET データ コントロールがあり、それぞれが別のデータベースに接続される場合です。

プログラムによってデータソースを変更するには

  1. SetDataBinding メソッドに、バインド先のデータ ソースおよびテーブルの名前を設定します。

    次の例では、SetDataBinding メソッドを使用して、データ ソースを Pubs データベースの Authors テーブルに接続される ADO.NET データ コントロール (adoPubsAuthors) に変更する方法を示しています。

    Private Sub ResetSource()  
       DataGrid1.SetDataBinding(adoPubsAuthors, "Authors")  
    End Sub  
    
    private void ResetSource()  
    {  
       DataGrid1.SetDataBinding(adoPubsAuthors, "Authors");  
    }  
    
    private:  
       void ResetSource()  
       {  
          dataGrid1->SetDataBinding(adoPubsAuthors, "Authors");  
       }  
    

関連項目