none
vb 那裏是控制 form1 被創建? RRS feed

  • 問題

  • 我想 form1 不要在程式啟動時自動出現, 要在我控制的時機才被創建

    我只找到 application.designer.vb  內找到如下

    但我註解掉 me.mainform 後卻不能 compile , 大概是說 form1 未被創建

    我的 project 為 winform, 不想用 console, 亦只有 form1 一張 winform

    請問如何解決?

     

     

    Namespace My
    
     
    
     '注意: 這是自動產生的檔案,請勿直接修改它。若要進行變更,
    
     ' 或者您在這個檔案發生建置錯誤,請到專案設計工具
    
     ' (移至專案屬性或者在 [方案總管] 中按兩下 [My Project] 節點),
    
     ' 然後在 [應用程式] 索引標籤上進行變更。
    
     '
    
     Partial Friend Class MyApplication
    
      
    
      <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
    
      Public Sub New()
    
       MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
    
       Me.IsSingleInstance = false
    
       Me.EnableVisualStyles = true
    
       Me.SaveMySettingsOnExit = true
    
       Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
    
      End Sub
    
      
    
      <Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
    
      Protected Overrides Sub OnCreateMainForm()
    
       Me.MainForm = Global.WindowsApplication1.Form1
    
      End Sub
    
     End Class
    
    End Namespace


    2011年7月17日 上午 07:36

解答

  • 取消 "使用應用程式架構", VB Windows Form Application Project就會把寫main() 的權利交還給你.
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年7月17日 下午 01:10
    版主
  • Hi,

    你可以參閱Bill叔說的到專案屬性那邊將使用應用程式架構的勾選取消

    然後照個模組~在裡面撰寫個Main方法

    裡面依自己的需求下去啟動表單

    這邊須注意的是啟動表單時是透過Application.Run啟動

    Module Module1
    
      <STAThread()>
      Sub Main()
        ...
        Application.Run(jNew Form1())
      End Sub
    
    End Module
    


    最後記得在專案屬性那邊須將起始物件(Startup Object)設為Sub Main


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年7月17日 下午 01:32

所有回覆

  • 基本上你如果不 new Form 的話,Form 是不會被生成的。
    主 Form 的生成是在 Application.Run(),要進入訊息迴圈而使用的。
    如果你不想要由 Windows 來管理,就要自己去實作一個訊息迴圈,或是不要讓 Main() 結束。

    另外,沒事不要去改 Designer.vb 檔案中的程式,因為那會讓 Designer 有意料之外的問題。


    小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
    雲端學堂Facebook: http://www.facebook.com/studyazure
    2011年7月17日 上午 09:29
    版主
  • 取消 "使用應用程式架構", VB Windows Form Application Project就會把寫main() 的權利交還給你.
    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年7月17日 下午 01:10
    版主
  • Hi,

    你可以參閱Bill叔說的到專案屬性那邊將使用應用程式架構的勾選取消

    然後照個模組~在裡面撰寫個Main方法

    裡面依自己的需求下去啟動表單

    這邊須注意的是啟動表單時是透過Application.Run啟動

    Module Module1
    
      <STAThread()>
      Sub Main()
        ...
        Application.Run(jNew Form1())
      End Sub
    
    End Module
    


    最後記得在專案屬性那邊須將起始物件(Startup Object)設為Sub Main


    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2011年7月17日 下午 01:32