2014-05-12 6 views
0

나는 f1과 f2에서 두 개가 있습니다. F2가로드 될 때이 코드를 사용다른 양식을 사용하여 다른 양식의 값을 변경하는 방법은 무엇입니까?

f2 emp = new f2(); 
emp.MdiParent = f1; 
emp.WindowState = FormWindowState.Maximized; 
emp.Show(); 

F1 공용 변수

public string name; 

을 갖는 I가 F2를 통해 f1.name 액세스하려는. 어떻게하면됩니까?

+3

'문자열 form1EmpName = emp.name;'또는'emp.name = "John Doe";'-에 의해 공공 분야를 갖는 것은 나쁜 습관으로 간주됩니다. 대신에 프로퍼티를 사용하십시오 ('public string Name {get; set;}'). – Tim

답변

5

예에서는 f2이 표시되지 않습니다. 보통 나는 같은 것을 할 :

interface if1 
{ 
    string Name {get;} 
} 

f1이 구현 :

public class f1 : Form, if1 
{ 
    public string Name { get { return name; } } 
} 

패스 f1f2에 :

f1 emp = new f1(); 
f2 x = new f2(f1); 

f1이 무엇을 설명하는 인터페이스를 만들기

Co f2의 nstructor : 속성 "이름"과

public f2(if1 f1) 
{ 
    string nameOfForm1 = f1.Name; 
} 
0

F1 :

public class f1 : Form 
{ 
    public string name; 
} 

F2 :이 같은

public class f2 : Form 
{ 
    public f2(f1 form) 
    { 
     string name = form.name; 
    } 
} 

그리고 그들을 만들 :

f1 form = new f1(); 
f2 emp = new f2(form); 
관련 문제