2013-07-24 3 views
1

나는 (CompanyId를) 자식 폼에 값을 갖는다. 이 값을 MDI 부모 형식의 수준에서 전달하고 싶습니다.C#에서 자식 폼의 데이터를 부모 MDI 폼이나 부모 MDI에서 자식 폼으로 보내는 방법은 무엇입니까?

하위 폼에서는 데이터베이스에서 데이터 그리드보기로 데이터를 검색합니다. 이제 DataGrid 뷰에서 값을 선택합니다.

문자열 SkillName = dataGridView1.CurrentRow.Cells [ "SHORTS"]. Value.ToString();

이제이 SkillName 값을 MDI 상위 폼에 전달하려고합니다. 어떻게해야합니까?

+1

당신이 보여줄 수 무엇을 지금까지 이것을 해결할 수 있었습니까? – xxbbcc

+0

자식 폼에서 나는 데이터 그리드 뷰에서 데이터베이스로부터 데이터를 가져온다. 이제 DataGrid 뷰에서 값을 선택합니다. 문자열 SkillName = dataGridView1.CurrentRow.Cells [ "SHORTS"]. Value.ToString(); 이제이 SkillName 값을 MDI 상위 폼에 전달하려고합니다. 어떻게해야합니까? –

답변

2

그것을 할 수있는 말 그대로 수많은 방법이 있습니다. 그것은 모두 당신이하고 싶은 것과 그 이유에 달려 있습니다. @ f0x way는 좋지만 공용 매개 변수를 사용하고, 이벤트를 만들고 원하는 때에 팝업하고, 플래그를 설정할 수 있습니다 (글로벌 플래그 일 수 있음).

간단한 데이터를 부모에서 자식으로 전달하려는 경우 f0x가 생성자에서 수행하거나 자식이 실행하는 이벤트를 등록하게하고/int/etc 문자열을 보냅니다. 부모 (부모)가 원할 때마다 이벤트를 실행할 수 있고 자식이 즉시 해당 데이터를 처리 할 수 ​​있습니다.

이 주위에 다른 길을 갈 수 있습니다 부모가 아이를 만들 때,이 이벤트에 자식 불을 등록 ... 여기

은 예입니다

public partial class Form1 : Form 
{ 

    public void RegisterSon() 
    { 
    ChildForm frm = new ChildForm(); 
    frm.MyEventChild += new MyEvntHndler(frm_MyEventChild); 
    } 

    void frm_MyEventChild(string data) 
    { 

    } 
} 

public delegate void MyEvntHndler(string data); 

public class ChildForm: Form 
{ 
    public event MyEvntHndler MyEventChild; 

    private void button1_Clicked(object sender, EventArgs e) 
    { 
    if (MyEventChild != null) 
    { 
     MyEventChild("This is my data"); 
    } 
    } 
} 
2

가장 쉬운 방법은 companyId을 매개 변수로 양식 생성자에 전달하는 것입니다. 회사의 형태로 예를 들어

:

public partial class CompanyForm : Form 
{ 
    public CompanyForm(int companyId) 
    { 
     InitializeComponent(); 
    } 
} 

새 양식을 단순히 호출 양식에서 값을 전달할 전화

:

var form = new CompanyForm(10); // '10' the id 
form.MdiParent = this; 
form.Show(); 
관련 문제