我有一些代码在程序启动时在模块中运行,执行许多操作,然后(根据具体情况)显示一个表单以便进一步交互。
我这样做是因为在几个有效的场景中,程序可以在没有显示表单的情况下开始和结束。
代码看起来像这样:
Public Sub Main()
Call Create_Application_Data_Folder()
' Parse the command line arguments for all the videos to convert
Dim totalFiles As Integer = Parse_Command_Line_Args()
If totalFiles = -1 Then End ' No valid video files listed
' Confirm to the user
If MsgBox("Would you like to convert these " & totalFiles & " files?", MsgBoxStyle.YesNo + MsgBoxStyle.Question, "Converter") = MsgBoxResult.No Then End
' Check if there isn't another process running
Dim alreadyRunning as Boolean = Check_Already_Running()
If alreadyRunning = True Then
' Add to existing queue to be run by other process
Call Advise_Files_Added_To_Queue
End
End If
' Show conversion window and get converting
frmConvert.ShowDialog()
' DEBUGGING: Display a pop-up here when form is closed
MsgBox("You are here!")
End Sub
然而,一旦显示表单,我有两个相当恼人的问题:
frmConvert.ShowDialog()
而不是当时正在执行的实际行。frmConvert.ShowDialog()
返回,我看到弹出窗口“你在这里!”。因此,我完全无法调试正在发生的事情。
我尝试将frmConvert.ShowDialog()
替换为:
Dim main As New frmConvert
main.ShowDialog()
但这也不起作用。
调用此表单的正确方法是什么,以便显示但是一切都按照我的预期运行?
答案 0 :(得分:1)
使用Application.Run(frmConvert)
代替frmConvert.ShowDialog()
。这是从子主档调用表单的“正确”方式。