【问题标题】:Visual Studio Winforms Project Hidden Startup CodeVisual Studio Winforms 项目隐藏的启动代码
【发布时间】:2017-12-03 04:56:22
【问题描述】:

在 Visual Studio 中创建 VB.NET Winforms 项目时,似乎隐藏了很多与初始化相关的代码。有没有办法显示它以查看哪些语句从一开始就运行,通过创建MyProjectMyApplication 对象,创建和展示SplashScreen,最后定义和创建My.Application.ApplicationContext.MainForm

也就是说,一个控制台应用程序项目有一个可见的Sub Main(),我认为 Winforms 应用程序也应该有一个,但它是隐藏的,并且包含为 SplashScreen、主窗体等创建实例的例程。我希望看到并更好地理解这个流程。

谢谢!

【问题讨论】:

  • 如果您指的是表单初始化程序,那么在 Solution Explorer 的右上角单击 左侧带有三个文件的按钮> 然后单击表单的小箭头并打开 Form.Designer.vb
  • @Mederic,不,我指的是整个应用程序。也就是说,一个控制台应用程序项目有一个可见的Sub Main(),我认为 Winforms 应用程序也应该有一个,但它是隐藏的,并且包含为 SplashScreen、主窗体等创建实例的例程。我想更好地查看和理解此流程。

标签: vb.net winforms visual-studio visual-studio-2017


【解决方案1】:

单击项目 --> 属性 --> 应用程序选项卡 --> 查看应用程序事件按钮(选项卡右下角)。

这里可以创建一个Application.Startup() Event,相当于一个Console Application中的Sub Main;至少这是您应该放置需要运行的代码的第一个位置。 *使用代码编辑器顶部的下拉菜单;将“MyApplication”更改为“(MyApplication Events)”,并将“OnCreateMainForm”更改为“Startup”。

这里还可以查看构造函数New()OnCreateMainForm(),这是创建启动表单的地方。以下是所有这些的示例:

Option Strict On
Option Explicit On
'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated by a tool.
'     Runtime Version:4.0.30319.42000
'
'     Changes to this file may cause incorrect behavior and will be lost if
'     the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------

Imports Microsoft.VisualBasic.ApplicationServices

Namespace My

    'NOTE: This file is auto-generated; do not modify it directly.  To make changes,
    ' or if you encounter build errors in this file, go to the Project Designer
    ' (go to Project Properties or double-click the My Project node in
    ' Solution Explorer), and make changes on the Application tab.
    '
    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.VB_Scratch_WinForms.Form1
        End Sub

        Private Sub MyApplication_Startup(sender As Object, e As StartupEventArgs) Handles Me.Startup

        End Sub

    End Class

End Namespace

【讨论】:

    【解决方案2】:

    我相信你所要求的东西被埋在不同的地方。 Console Sub Main() 相当于您指定的应用程序设置下的“启动表单”;通常 Sub Main() 相当于我的 Mainform_Load。在解决方案资源管理器中,如果您浏览“我的项目”(确保点击应用程序名称上方的“显示所有文件”)并展开所有树,您将看到 Application.Designer.vb、Resources.Designer 等文件.vb 和 Settings.Designer.vb,它将向您显示与您的项目有关的自动生成的信息。这些都是在启动表单初始化之前加载的。

    您还可以使用 ApplicationEvents.vb(位于“我的项目”下的“应用程序”选项卡下)向您显示并允许您在创建启动表单之前调用代码。

    所有这些部分加在一起可能是您有兴趣看到的。但如前所述,其中大部分都在后台,而 Sub Main() 确实是您希望它在 Windows 窗体应用程序中的任何内容。

    希望这些文件有所帮助。

    【讨论】:

      猜你喜欢
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 2022-06-13
      • 1970-01-01
      相关资源
      最近更新 更多