none
請問表單問題 RRS feed

  • 問題

  •  

    請問如何於form1開立form2後,form1有一button,click它時會關掉form2,form1還是on著...以下是我的程式碼

     

    **************form1_button1.click*********

            Dim form2 As New form2()
            form2.close()

     

    2008年3月5日 上午 07:04

解答

  • 這只是簡單的描述,要流程上一直能跑,簡單一點是 From2.Close 變為 Form2.Hide ,不然就是 Form2.Show 前要做 Form2.IsDisponsed 判斷,若為 True 必須 Form2 = New Form2 才能再呼叫 Form2.Show。

    2008年3月5日 上午 07:43
    版主

所有回覆

  • 把 Form2 設到共用變數,一個 button 放 form2.Show ,一個 Button 放 form2.Close

     

    2008年3月5日 上午 07:21
    版主
  • dear sir,

    以下是我改寫的,第一個流程是ok的,即為form1_button1-->會開form2,form1_button2--->會關閉form2

    但~當我再click form1_button1--->>會出現以下的訊息

     

    類型 'System.ObjectDisposedException' 的未處理例外狀況發生於 system.windows.forms.dll

    其他資訊: 無法存取名為 "Form2" 的處置物件。

    2008年3月5日 上午 07:39
  • 這只是簡單的描述,要流程上一直能跑,簡單一點是 From2.Close 變為 Form2.Hide ,不然就是 Form2.Show 前要做 Form2.IsDisponsed 判斷,若為 True 必須 Form2 = New Form2 才能再呼叫 Form2.Show。

    2008年3月5日 上午 07:43
    版主
  •         if (empTitleForm == null)
                {
                    empTitleForm = new EmpTitleForm();
                    empTitleForm.Show();
                }
                else
                {

                    try
                    {
                        empTitleForm.Visibility = Visibility.Visible;
                    }
                    catch
                    {
                        empTitleForm = new EmpTitleForm();
                        empTitleForm.Show();
                    }
                }

     

    這是我寫的,用WPF的模型,已前的Windows 作法應該差不多參考一下.

     

    我這個是放在主程式裡,裡面按Menu 去開啟職稱視窗.

     

          if (empTitleForm == null)
                {
                    empTitleForm = new EmpTitleForm();
                    empTitleForm.Show();
                }

     

    上面是先判斷,如果第一次呼叫,就New 一個出來.

    接著

          try
                    {
                        empTitleForm.Visibility = Visibility.Visible;
                    }

    如果以前有用過,被隱藏,或被縮小,直接做Show 的動作

     

            catch
                    {
                        empTitleForm = new EmpTitleForm();
                        empTitleForm.Show();
                    }

    最後如果發生例外就New新一個.

     

    2008年3月6日 上午 09:16