How do I fire an event in VB.NET code?
I have a form that has a start button (to allow users to run the processes over and over if they wish), and I want to send a
btnStart.Click event when the form loads, so that the processes start automatically.
I have the following function for the
btnStart.Click event, but how do I actually tell Visual Basic 'Pretend someone has clicked the button and fire this event'?
I've tried going very simple, which essentially works. However, Visual Studio gives me a warning
Variable 'sender' is used before it has been assigned a value, so I'm guessing this is not really the way to do it:
Dim sender As Object btnStart_Click(sender, New EventArgs())
I have also tried using
RaiseEvent btnStart.Click, but that gives the following error:
'btnStart' is not an event of 'MyProject.MyFormClass
Автор: David Gard Источник Размещён: 12.11.2019 09:53
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
You should send a button as
sender into the event handler:
Автор: MarcinJuraszek Размещён: 05.04.2013 10:36
btnStart_Click(btnStart, New EventArgs())
Steps in involved in raising an event is as follows,
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
So in your case, it should be as below,
Автор: Dev Размещён: 05.04.2013 10:50
You are trying to implement a bad idea. Actually, you have to make a subroutine to accomplish these kind of tasks.
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
And then whereever you want to call the
btnStart's click event, just call that
SeparateSubroutine. This should be a correct way in your case.
Автор: Mandeep Singh Размещён: 05.04.2013 10:48