2016-08-20 18 views
0

子ウィンドウフォームを閉じた後、親ウィンドウフォームをリフレッシュさせるのに問題があります。ここで私が持っているコードだ:子ウィンドウから親ウィンドウフォームをリフレッシュ

private void btnSave_Click(object sender, EventArgs e) 
    { 
     BusinessClient bc = new BusinessClient(); 
     bc.CompanyName = txtCompanyName.Text; 
     bc.PointOfContact = txtPointOfContact.Text; 
     bc.Address1 = txtAddressOne.Text; 
     bc.Address2 = txtAddressTwo.Text; 
     bc.City = txtCity.Text; 
     bc.State = cbxState.Text; 
     bc.Zip = txtZip.Text; 
     bc.Phone = txtPhone.Text; 
     bc.Email = txtEmail.Text; 

     BusinessClientMgr bcMgr = new BusinessClientMgr(); 
     bcMgr.StoreNewBusinessClient(bc); 

     AfterTheSave(); 

     AssignmentForm assignForm = new AssignmentForm(); 
     assignForm.Refresh(); 

     this.Close(); 
    } 

私はここで何をしようとしていることは、データを保存し、子ウィンドウのフォームを閉じて、親ウィンドウが表示する新しいデータを取得することによってリフレッシュを形成することです。私はここに何かを逃していますか子ウィンドウのフォームは親を制御すべきではないことを理解していますが。それを考えると、子供は親に情報の更新を求めています。

+0

ソリューションを検索しようとしましたか?この質問は1000回答えられました。 –

+0

'assignForm.Refresh()'はフォームデータとは何の関係もなく、フォームグラフィックスを再描画します。 –

+0

@BastianThiede私は解決策を探しましたが、それらのすべてが私が探していなかったASP.NETに関連しているため、何も見つかりませんでした。 – Marc

答えて

0

答えはAniruddha Varmaです。

親と子の2つのフォームがあります。親の中へ

は、我々はあなたが必要とするこれで子フォームを表示しようとしている。

Form2 child = new Form2(); 
child.Show(this); //We pass through the Parent instance to Child 

そして、また、私たちはこのようなフォームのコントロールがあるものは何でも編集するパブリックメソッドを宣言しようとしています:

public void SetText(string text) 
{ 
    parentTextbox.Text = text; 
} 

その後、私たちは子フォームに渡します。この中で、我々は、フォームに次のコードを閉鎖するフォームイベント「FormClosing」上またはボタンに宣言しよう:これで

Form1 parent = (Form1) Owner; 
parent.SetText(childTextbox.Text); 

を、私たちは子供に親インスタンスを取り戻すしようとしている、とメソッドSetTexをコールバックして、パラメータourテキストを渡します。最初のフォームを振り返ると、親のテキストボックスにChild's Formのテキストが更新されます。

+0

それは働いています - Aniruddhaのポストを明確にしてくれてありがとう。 – Marc

0

親フォームコード:

var child = new ChildForm(); 
child.Show(this); 

子フォームコード:

var myParent = (MainForm)this.Owner; 
myParent.ParentMethod(); 

MainFormは、あなたの親フォームで、ChildFormは、表示したい新しい形です。

+0

それは試みました - 動作しなかったし、新しいデータで親フォームを更新しませんでした。 – Marc

+0

@Marc 'ParentMethod'は親フォームのメソッドです。このメソッドを子フォームから呼び出し、引数(例えば 'int')を渡すことができ、' ParentMethod'はそのフォームを更新できます。 –

+0

@Marcどのようなエラーが投げられましたか?コメントでRakitićが述べたように、 'Refresh'メソッドはフォームの値とは関係ありません。 –

関連する問題