2017-12-12 15 views
0

私はWindowsフォームで作業しています。あるフォームではテーブルのデータを、もう1つはデータを追加します。私がリストしたフォームでは、データグリッドビューのテーブルの値を設定するためのフォームロードがあります。だから私は保存フォームで保存をクリックすると、私はデータをリストする他のフォームをリロードします。私は次のようなものを試しました:フォームを別のフォームからリフレッシュするには?

form.refresh 

しかし、動作しません。私は追加をクリックするとリストフォームを閉じようとしましたが、保存をクリックすると再び表示されますが、それはうまくいきましたが、私はそれを行うことができる他の方法はありますか?

リスト形式:

は、ここに私のコードです

private void ListadoExpedientes_Load(object sender, EventArgs e) 
{ 
     dgvExpedientes.AutoGenerateColumns = false; 
     Exp = ExpedienteNG.GetExpedientes(); 
     bExpedientes = new BindingList<Expediente>(Exp); 
     dgvExpedientes.DataSource = bExpedientes; 
} 

、ここで保存形式である:あなたの開いているフォームを見つけるためにApplication.OpenForms collectionを使用しようとすることができ

private void btnGuardar_Click(object sender, EventArgs e) 
{ 
     ListadoExpedientes listexp = new ListadoExpedientes(); 
     listexp.Refresh(); 
} 
+1

フォーム間でデータを共有する方法は、SOに関するより一般的な.Netの質問の1つです。私は最初に検索を行うことをお勧めします。まだ問題が戻ってきて問題に関連するコードを追加した場合は、まず検索を行うことをお勧めします。 – Crowcoder

+0

はそれが良いですか? –

+0

フォームは単なるクラスです。 'new'インスタンスを作成した場合、以前にデータを設定したインスタンスではなく、新しいインスタンスが作成されます。最初に問題を検索すると、このテーマが繰り返し表示されます。 – Crowcoder

答えて

0

。 その後、そこからリフレッシュを呼び出します。 例:

var listForm = Application.OpenForms.Cast<Form>().Where(x => x.Name == "ListadoExpedientes").FirstOrDefault(); 
if (listForm != null) 
{ 
    listForm.Refresh(); 
} 

私はこれをテストしていないので、あなたは、いくつかのことをtweekする必要がある場合があります。

0

クラス(フォーム) - 塩基の形態で更新を必要とするフォーム2(EX。)メソッドを保持している - フォーム2でコンストラクタとはForm1のオブジェクト

Form1 frm1; 
    public Form2(Form1 _frm1){ 
     InitializeComponent(); 
     ... 
     this.frm1 = _frm1; 
     this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.RefreshDatagrid); 
    } 

を保持する変数を定義するのForm1

Form1の

 public void RefreshDataGrid() 
      { 
       dgvExpedientes.DataSource = null; 
       dgvExpedientes.DataSource = bExpedientes; 
      } 

private void OpenForm2_Click(object sender, EventArgs e) 
     { 
      Form2 = new Form2 (this); 
      t.ShowDialog(); 
     } 

あなたはForm2のを閉じたときにこのコードは、Form1のでdgvExpedientesを更新し、 あなたがuploaを終了した後、そのイベントがトリガされますdingレコードを閉じてform2を閉じます。 これはあなたの状況に役立つことを願っています

関連する問題