0

我有一个从模块中的子开始的应用程序,做一些事情,然后加载表单。

但它不起作用:/

这里我们执行dBase.AddTemporalFilepath

模块.vb

Public dBase As New Core.clsDatabase

Public Sub Main()

    FurBase.Directory = My.Application.Info.DirectoryPath

    If appMutex.WaitOne(TimeSpan.Zero, True) Then
        ShowUploader()
    End If

    Dim returnValue As String()

    returnValue = Environment.GetCommandLineArgs()

    If returnValue.Length > 1 Then
        If My.Computer.FileSystem.FileExists(returnValue(1).ToString) Then
            dBase.AddTemporalFilepath(returnValue(1).ToString)
        End If
    End If

End Sub

Private Sub ShowUploader()
    Application.EnableVisualStyles()
    Application.Run(frmUploader)
End Sub

我们引发事件TempFilepathAdded

clsDatabase.vb

Public Class clsDatabase

Public Event TempFilepathAdded()

Public Function AddTemporalFilepath(ByVal filepath As String)
...
        RaiseEvent TempFilepathAdded()
...
End Function

End Class

我们抓住事件

表格.vb

Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    AddHandler dBase.TempFilepathAdded, AddressOf TempFilepathAddedHandler

End Sub

Private Sub TempFilepathAddedHandler()
    MsgBox("Event raised")
End Sub

任何的想法?

更多信息:

该事件在窗体关闭时引发。

4

1 回答 1

1

“Application.Run(frmUploader)”行会暂停您的程序,直到窗口关闭。基本上它劫持了主线程来处理用户点击按钮之类的事情。

通常,您的 Main 函数应如下所示:

  1. 设置
  2. 应用程序运行
  3. 清理

抱歉,看来是时候重新组织您的代码了。

于 2010-01-26T03:52:44.710 回答