visual net example event ejemplo create vb.net events raiseevent

example - ¿Cómo disparo un evento en el código VB.NET?



raiseevent visual basic (4)

Tengo un formulario que tiene un botón de inicio (para permitir a los usuarios ejecutar los procesos una y otra vez si así lo desean) y deseo enviar un evento btnStart.Click cuando se carga el formulario, para que los procesos se inicien automáticamente.

Tengo la siguiente función para el evento btnStart.Click , pero ¿cómo le digo a Visual Basic ''Pretender que alguien ha hecho clic en el botón y desencadenar este evento''?

Intenté ir muy simple, lo que esencialmente funciona. Sin embargo, Visual Studio me da una advertencia. Variable ''sender'' is used before it has been assigned a value , por lo que supongo que esta no es realmente la manera de hacerlo:

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

También he intentado usar RaiseEvent btnStart.Click , pero eso da el siguiente error:

''btnStart'' no es un evento de ''MyProject.MyFormClass

Código

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


Los pasos para participar en la organización de un evento son los siguientes,

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

Entonces en tu caso, debería ser como a continuación,

btnStart_Click(btnStart, EventArgs.Empty)


Solo llama

btnStart.PerformClick()


Debe enviar un botón como sender al controlador de eventos:

btnStart_Click(btnStart, New EventArgs())


Estás tratando de implementar una mala idea. En realidad, debe hacer una subrutina para realizar este tipo de tareas.

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

Y luego, donde quiera que llame al btnStart''s click event , simplemente llame a SeparateSubroutine . Esta debería ser una forma correcta en su caso.