【发布时间】:2019-04-04 14:17:44
【问题描述】:
我习惯于以 MVC 风格创建 (Excel) VBA 用户表单程序,并且最近更多地关注 VB.Net。
一般来说,我会在 VBA 中创建一个 MVC 样式的用户表单应用程序,方法是创建一个“初始化”函数,该函数创建一个“控制器”模块的实例并利用该控制器中包含的“启动程序”方法。此方法将创建应用程序使用的模型和视图的实例,然后将视图呈现给用户。
例如,
Public Sub Launch()
With New Controller
.Present
End With
Debug.Print "Execution ended"
End Sub
然后在控制器(类)模块中,我将拥有诸如
之类的代码Private WithEvents m_View As View
Private m_Model As Model
Public Sub Present()
Set m_View = New View
Set m_Model = New Model
m_View.Show vbModal
End Sub
我对 VB.Net 的问题是没有明显的方法来创建一个等效的“启动器”子程序,它控制程序的执行,而只是向用户提供主窗体的默认实例运行程序。我试图通过创建一个主窗体来复制所需的架构,该主窗体(应该是)在启动程序时立即隐藏。这个隐藏的表单(应该)然后创建所有其他表单的特定实例,控制如何根据一般 MVC 方法处理和返回用户输入。
但是,这不起作用,因为 VB.Net 代码...
Public mSetupForm As SetupForm
Public mOutputForm As OutputForm
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Debug.Print("Program initialized")
mSetupForm = New SetupForm
mOutputForm = New OutputForm
Me.Hide()
mSetupForm.Show()
End Sub
...不隐藏 Form1。
【问题讨论】:
标签: vb.net model-view-controller