-
July 2nd, 2019, 05:15 PM
#1
[RESOLVED] Using a Background Worker in Visual Studio 2012 Express
Hello;
I am attempting to use a Backgroundworker in Visual Studio 2012 Express to display a ticker.
I actually want to do this on 2 forms: a main form and a settings form.
On the settings form, all I want to do is:
1) When it is turned on (selected to show via radiobutton) display previously set text in a label character by character at a speed selected by the user (via trackbar value [ie: using a sleep call with the trackbar value * 1000]
Then a small blank space repeated by the previously set text.
2) If it is turned off then stop the background worker, clear the label text, and hide the label.
I keep getting IllegalCrossThread calls when attempting to do this on the settings page so I haven't even attempted any code for the main page.
On the main page, I just want the ticker to display the previously selected text character by character at the set "ticker speed" and loop just like on the settings page.
This is what I have gotten thus far:
Code:
Module Module1
Public TickerTest As String = "***** This is how fast the ticker will run..."
Public TickerMsg As String = "***** Today's winning bonus is: "
End Module
Public Class Form3
Public CharAdd As Integer = 0
Private Sub RadioButton4_CheckedChanged(sender As Object, e As EventArgs) Handles RadioButton4.CheckedChanged
RadioButton4.Font = IIf(RadioButton4.Checked = True, New Font(RadioButton4.Font, FontStyle.Bold), New Font(RadioButton4.Font, FontStyle.Regular))
If RadioButton4.Checked = False Then
BackgroundWorker1.CancelAsync()
ElseIf RadioButton4.Checked = True Then
BackgroundWorker1.RunWorkerAsync()
End If
OKToolStripMenuItem.Enabled = True
SAVEToolStripMenuItem.Enabled = True
End Sub
Private Sub BackgroundWorker1_DoWork(sender As Object, e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
For CharNum = 1 To Len(Trim(TickerTest))
CharAdd += 1
Label7.Text = Mid(TickerTest, CharNum, CharAdd)
System.Threading.Thread.Sleep(My.Settings.TickerSpeed * 1000)
If BackgroundWorker1.CancellationPending = True Then
Label7.Text = Nothing
Label7.Hide()
End If
Next
End Sub
End Class
May I get some help please?
Thank you.
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|