2017-03-06 17 views
-2

私はメインフォームにdatagridviewを持っています。 2番目のフォームは、メインフォームのグリッドがデータを最新表示し、最近追加された情報を表示すると、データベースに情報を追加します。これをどうすればいいのですか?別のフォームからフォームのDataGridViewをリフレッシュ

private void AllBuses_Load(object sender, EventArgs e) 
     { 
    using (var context = new dbcontext()) 
       { 
        var q = (from b in context.Bus 
          join c in context.Centre 
          on b.centre_id equals c.centre_id 
          select new { b.bus_marque, b.bus_ref, b.bus_serie,  c.centre_nom }).ToList(); 
        dataGridView1.DataSource = q; 
        dataGridView1.Refresh(); 
       }} 

(第二の形式addbusesから)データベースに結合バスを追加した後、メインフォームのグリッドは、直ちにまたは私はaddbusesフォームを閉じた後にそのデータをリフレッシュする必要があります。

+0

MDIコンテナまたはシンプルフォームを使用していますか? –

+0

単純なフォーム –

答えて

0

解決策のためにこれを行うことができます。 mainFormから2番目のフォームのコンストラクタを呼び出しながら、mainFormのインスタンスを渡します。また、dbからデータをフェッチしてgridに設定するメソッドを作成します。あなたのsecondForm内

private void openInsertBusForm() 
    { 
     Form2 frm = new Form2(this); 
     frm.Show(); 
    } 

グリッドにデータを設定する方法

public void RefreshGrid() 
    { 
     //put the code which get's data from db and set it to grid 
    } 

は次のようにMainFormをのインスタンスを設定します。

private Form1 form1; 
    public Form2(Form1 frm1) 
    { 
     form1 = frm1; 
    } 

最後に、バスを挿入した後、すなわち

private void addBus_Click(object sender, EventArgs e) 
    { 
     //after adding new data to your database 
     form1.RefreshGrid(); 
    } 

secondFormからこの道をMainFormというのメソッドを呼び出し、あなたのfirstForm内のデータが更新されます。

希望します。

+0

ありがとうございます<3 –

+0

このInitializeComponent()を追加するのを忘れてしまいました。 form1 = frm1の後に; –

関連する問題