2013-03-17 2 views
0

몇 시간 동안이 특정 문제에 대한 해결책을 찾고 있습니다. 그래서 유래의 당신 종류의 사람들은Form2.Checkbox 상태를 Form2.Disposed 이벤트로 변경하십시오.

여기

내가이 Form2.cs에서이 Form2를에

public partial class Form2 : Form 
{ 
    Form1 newForm1; 

    public Form2() 
    { 
     InitializeComponent(); 

    } 
    private void Form2_Disposed(object sender, EventArgs e) 
    { 
     newForm1 = new Form1(); 
     newForm1.CheckBox1_Checked = false; 
    } 

입니다 지금까지


를 무슨 짓을했는지 내 최후의 수단이다 디자이너 .cs

partial class Form2 
{ 
    .... 
private void InitializeComponent() 
    { 
     .... 
     this.Disposed += new System.EventHandler(this.Form2_Disposed); 
     .... 
    } 
    .... 
} 

이 내가 (X 포함)을 Form2를 닫을 때 그래서 프로그램이 처분 된 이벤트를 통과하지만, 체크 박스의 상태를 변경하지 않습니다

public partial class Form1 : Form 
{ 
    .... 
    public bool CheckBox1_Checked 
    { 
     get { return checkBox1.Checked; } 
     set { checkBox1.Checked = value; } 
    } 
    .... 
} 

Form1.cs를

입니다.

나는 또한 Form1.Checkbox1 제어를 공개하고 접근을 사용하지 않고 내 말은 (직접 접근을 시도했지만,

여전히 운.

나는 newForm1가 Form1의 복사본입니다 생각한다. 하지만 난 "newForm1은"어떤 도움을 주시면 감사하겠습니다

객체

매우 "을 Form1"라고 말할 방법을 모르는

+0

Form1이 이미 열려? – KF2

+0

예 @irsog form1이 이미 열려 있습니다. – Iorgov

답변

0

을 Form1에 이미이 작업을 수행 할 수 있습니다 열립니다 경우. (대신 Dispose 사용 폐쇄 이벤트 사용) Form1.cs를

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      _Form1 = this; 
     } 
     public static Form1 _Form1; 

     public CheckBox chk { get { return checkBox1; } } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      Form2 gg = new Form2(); 
      gg.ShowDialog(); 
     } 

    } 

Form2.cs

public partial class Form2 : Form 
    { 

     public Form2() 
     { 
      InitializeComponent(); 
      this.FormClosed += new FormClosedEventHandler(Form2_FormClosed); 
     } 

     void Form2_FormClosed(object sender, FormClosedEventArgs e) 
     { 
      Form1._Form1.chk.Checked = false; 
     } 

    } 
0
public partial class Form1 : Form 
{ 
    public static Form1Instance; 
    ... 

    Form1.OnLoad(...) 
    { 
     Form1Instance=this; 
    } 
} 

//now call using static variable 
Form1.Form1Instance.CheckBox1_Checked=true; 
+0

Form2.Dispose()가 아닌 Form2.OnClose()에서 호출하는 것이 좋습니다. – David

+0

감사합니다. @David 지금부터 내 개인적인 하나님입니다. 그리고 오늘 밤 너의 명예를 위하여 맥주를 희생 하리라. D – Iorgov

관련 문제