2013-06-20 51 views
0

我有一個程序,我希望它在結束前要求確認。這只是一個簡單的問題和一個yes和一個no按鈕。我怎樣才能將哪個按鈕被點擊的信息發送回主窗體?我找到的所有解決方案都是爲了打開這兩種表單進行通信,但是在第二個選擇按鈕時它會關閉。任何提示或想法?C#如何在關閉表單之前將消息從一種表單發送到其他表單?

+0

在關閉事件,設置在主窗體上的屬性。 – xecaps12

+0

Javascript確認彈出框就夠了嗎? http://www.w3schools.com/js/js_popup.asp – Shenaniganz

+0

Sory,我是C#的新手。你簡單的句子對我來說毫無意義。 –

回答

1

您描述的第二種形式類似於MessageBox ...您可以將其直接實現用作對話框。未經測試的例子:

DialogResult dr = MessageBox.Show("Are you Sure?", 
    "Confirm Exit?", 
    MessageBoxButtons.YesNo); 
if (dr==DialogResult.Yes) 
{ 
    // Do work If Yes 
}else //if(dr == DialogResult.No) 
{ 
    // Do work if No 
} 

See MSDN for MessageBox

+0

謝謝。我認爲這解決了我的問題。我不知道消息框中有「是或否」選項。我會盡我所能,我會在明天再次選擇該計劃。 –

+0

我工作過。謝謝您的幫助。 –

0

我傾向於做這種方式。

兒童表單代碼:

 private bool _bDoSomething=false; 

     public bool showForm() 
     { 
      this.ShowDialog(); 
      return _bDoSomething; 
     } 

     private void btnOK_Click(object sender, EventArgs e) 
     { 
      _bDoSomething=true; 
      this.Hide(); 
     } 

然後這種代碼父形式:

 dlgMyForm dlgMyForm = new dlgMyForm(); 
     if (dlgMyForm.showForm()) 
     { 
      //do something 
     } 
0

聲明中主要形式的布爾值作爲公共

public Boolean check =false; 

在第二個窗體的FormClosing事件中,執行以下操作

private void Form2_FormClosing(Object sender, FormClosingEventArgs e) 
{ 
    DialogResult answer = MessageBox.Show("[Your text]",MessageBoxButtons.YesNo) 

    if(answer == DialogResult.Yes) 
    { 

     Form1.check=True; //if button yes is clicked 
         // set the form1 check variable to True and closes form2 

    } 
    else 
    { 
      Form1.check=False; //if button no is clicked 
          // set the form1 check variable to False and cancel form 
          // closing         
      e.Cancel=True; 
    } 


} 

使用布爾變量檢查做進一步的處理在Form1

相關問題