Как вызвать события из библиотеки классов на форму с помощью модуля? - PullRequest
0 голосов
/ 26 января 2010

У меня есть приложение, которое начинается с подпрограммы в модуле, делает несколько вещей, а затем загружает форму.

Но это не работает: /

Здесь мы выполняем dBase.AddTemporalFilepath

module.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

Мы ловим событие

form.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

Любая идея?

Дополнительная информация:

Событие возникает при закрытии формы.

1 Ответ

1 голос
/ 26 января 2010

Строка «Application.Run (frmUploader)» приостанавливает вашу программу, пока окно не закроется. По сути, он захватывает основной поток для обработки таких вещей, как нажатие кнопок пользователями.

Обычно ваша основная функция должна выглядеть следующим образом:

  1. Настройка
  2. Application.Run
  3. Очистка

Извините, но похоже, что пришло время реорганизовать ваш код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...