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 に答える