2009-07-19 80 views
0

我使用C#+ VSTS2008 + .Net 2.0開發Windows窗體應用程序。在Form1的button1事件處理程序中,創建Form2,然後出現Form2。然後,當Form2的button2的觸發事件處理程序(button2是Form2的UI按鈕元素)時,執行button2事件處理程序後,Form2將消失。這是我創建Form2的代碼的一部分。任何想法會導致Form2消失?C#Windows窗體突然消失

// button1 belongs to Form1 
private void button1_Click(object sender, EventArgs e) 
{ 
    Form2 form2 = new Form2("www.google.com"); 
    form2.ShowDialog(); 
} 
+2

你能展示處理Button2_Click的代碼嗎? – 2009-07-19 18:31:11

+1

發佈您的button2事件處理程序 – 2009-07-19 18:31:53

+0

button2的事件處理程序爲空。任何想法有什麼不對? – George2 2009-07-19 18:41:46

回答

4

Form2作爲對話框打開。被按下的按鈕是否也被定義爲CancelButton(CancelButton屬性將位於form2上)。這樣做會在事件處理程序完成時自動關閉對話框。

3

如果沒有更多的細節,這是不可能肯定地說,但如果在BUTTON2有Form2分配給DialogResult屬性的值,這將導致按鈕被按下時,窗體自動隱藏。在設計器中打開Form2,選擇按鈕並檢查屬性網格。如果DialogResult屬性不是「None」,則這是預期的行爲。

從Button.DialogResult屬性的MSDN文檔:

如果DialogResult該物業 被設置爲None, 其他任何事情,如果家長形式顯示 通過ShowDialog方法, 單擊該按鈕可關閉父級 表單,而無需連接 任何事件。然後,單擊 按鈕時,表單的DialogResult 屬性將被設置爲該按鈕的 DialogResult