ich habe folgendes Problem:
Ich habe noch nicht viel Erfahrungen mit VB.Net und habe gerade in Visual Studio 2 Forms erstellt.
Die 1. Form besteht aus einem "Start" und "Stop"-Button und einem Backgroundworker.
Mit diesem Backgroundworker der 1. Form will ich Text in die ListBox der 2. Form einfügen. Das "Adden" des Textes soll in der DoWork-Methode des Backgroundworkers geschehen.
Mein Gedanke war, den Text per Delegate vom Backgroundworker der Form1 an eine addItem der Form2 zu übergeben, welche diesen Text dann in die ListBox einfügen soll. Die Box bleibt allerdings leer.
Versuche ich das gleiche mit der Ausgabe des Textes in eine Listbox der Form1, funktioniert das problemlos.
Hier mal der Code meines kleinen Testprogramms:
Klasse Form1:
Public Class Form1
Private Sub ZeigeF2()
Form2.Show()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ZeigeF2()
If Not BackgroundWorker1.IsBusy Then
BackgroundWorker1.RunWorkerAsync()
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
BackgroundWorker1.CancelAsync()
End Sub
Private Sub BackgroundWorker1_DoWork_1(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
While (True)
If Form2.ListBox1.InvokeRequired Then
Form2.ListBox1.Invoke(New Form2.AddItemsToListBoxDelegate(AddressOf Form2.additem), New Object() {"Ich bin Form 2"})
End If
If BackgroundWorker1.CancellationPending Then
Exit Sub
End If
End While
End Sub
End Class
Klasse Form2:
Public Class Form2
Public Delegate Sub AddItemsToListBoxDelegate(ByVal AddText As String)
Public Sub additem(ByVal text As String)
ListBox1.Items.Add(text)
ListBox1.SelectedIndex = ListBox1.Items.Count - 1
End Sub
End Class
Ich hoffe, mir kann jemand bei meinem Problem helfen!
Vielen Dank!
MfG
Triale
Dieser Beitrag wurde von Triale bearbeitet: 08. September 2011 - 20:19

Hilfe
Neues Thema
Antworten

Nach oben

