Comment puis-je lancer un événement dans VB.NET code?

j'ai un formulaire avec un bouton de démarrage (pour autoriser les utilisateurs à exécuter le processus encore et si ils le souhaitent), et je veux envoyer un btnStart.Click événement lorsque le formulaire se charge, de sorte que les processus commencent automatiquement.

j'ai la fonction suivante pour l' <!-Mais comment dire à Visual Basic que quelqu'un a cliqué sur le bouton et déclenché cet événement?

j'ai essayé d'aller très simple, essentiellement des œuvres. Cependant, Visual Studio me donne avertissement Variable 'sender' is used before it has been assigned a value, donc je suppose que ce n'est pas vraiment la façon de le faire:

Dim sender As Object
btnStart_Click(sender, New EventArgs())

j'ai aussi essayé d'utiliser RaiseEvent btnStart.Click, mais qui donne l'erreur suivante:

' btnStart 'n'est pas un événement de' MyProject.MyFormClass

Code

Imports System.ComponentModel

Partial Public Class frmProgress

    Private bw As BackgroundWorker = New BackgroundWorker

    Public Sub New()

        InitializeComponent()

        ' Set up the BackgroundWorker
        bw.WorkerReportsProgress = True
        bw.WorkerSupportsCancellation = True
        AddHandler bw.DoWork, AddressOf bw_DoWork
        AddHandler bw.ProgressChanged, AddressOf bw_ProgressChanged
        AddHandler bw.RunWorkerCompleted, AddressOf bw_RunWorkerCompleted

        ' Fire the 'btnStart.click' event when the form loads
        Dim sender As Object
        btnStart_Click(sender, New EventArgs())

    End Sub

    Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click

        If Not bw.IsBusy = True Then

            ' Enable the 'More >>' button on the form, as there will now be details for users to view
            Me.btnMore.Enabled = True

            ' Update the form control settings so that they correctly formatted when the processing starts
            set_form_on_start()

            bw.RunWorkerAsync()

        End If

    End Sub

    ' Other functions exist here

End Class
17
demandé sur Peter Mortensen 2013-04-05 14:30:18

4 réponses

vous devriez envoyer un bouton comme sender dans le gestionnaire d'événement:

btnStart_Click(btnStart, New EventArgs())
21
répondu MarcinJuraszek 2017-05-09 08:38:40

les étapes à suivre pour participer à l'organisation d'un événement sont les suivantes,

Public Event ForceManualStep As EventHandler
RaiseEvent ForceManualStep(Me, EventArgs.Empty)
AddHandler ForceManualStep, AddressOf ManualStepCompletion

Private Sub ManualStepCompletion(sender As Object, e As EventArgs)        


End Sub

Donc dans votre cas, il devrait être comme ci-dessous,

btnStart_Click(btnStart, EventArgs.Empty)
9
répondu Dev 2013-04-05 10:50:06

vous essayez d'implémenter un mauvais idée. En fait, vous devez faire un sous-routine pour réaliser ce genre de tâches.

Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click

      call SeparateSubroutine()

End Sub

private sub SeparateSubroutine()

   'Your code here.

End Sub

Et puis bon vous voulez l'appeler le btnStart's click event, il suffit d'appeler SeparateSubroutine. Cela devrait être une façon correcte dans votre cas.

6
répondu Rajaprabhu Aravindasamy 2017-05-09 08:39:48

Appel

btnStart.PerformClick()
5
répondu Mandeep Singh 2013-04-05 10:48:39